티스토리 뷰

Spring

[spring]RestTemplate란?

Xion 2020. 8. 13. 22:28

스프링 프레임워크에서는 REST 서비스의 Endpoint를 호출할 수 있도록 크게 2가지 방식인

동기비동기 REST Client를 제공합니다.

 

RestTemplate

- spring 3부터 지원 되었고 REST API 호출이후 응답을 받을 때까지 기다리는 동기방식입니다.

 

AsyncRestTemplate

- spring 4에 추가된 비동기 RestTemplate입니다.

- spring 5.0에서는 deprecated 되었습니다.

 

WebClient

- Spring 5에 추가된 논블럭, 리엑티브 웹 클라이언트로 동기, 비동기 방식을 지원합니다.

 

RestTemplate는 Spring에서 제공하는 다른 여러 Template class 

ex)JdbcTemplate, RedisTemplate 와 동일한 원칙에 따라 설계되어 단산한 호출로 복잡한 작업을 쉽게 할 수 있습니다.

RestTemplate class는 Rest Service를 호출 하도록 설계되어 HTTP 프로토콜의 메서드 

ex) GET, POST, DELETE, PUT 에 맞게 여러 메서드를 제공합니다

RestTemplate는 spring-webmvc 의존성만 추가하여 작업하시면 됩니다.

spring-web의존성에 포함된 클래스지만 spring-webmvc 의존성에 spring-web이 포함되어 있어 같이 의존성이 포함됩니다.

 

getForEntity()

- getForEntity() 메서드의 경우 응답을 ResponseEntity 객체로 받게됩니다. getForObject()와 달리 HTTP 응답에 대한 추가 정보를 담고 있어서

ex) status 200 OK 등

GET요청에 대한 응답 코드,실제 데이터를 확인할 수 있습니다.

또한 ResponseEntity<T>제네릭 타입에 따라서 응답을 String이나 Object 객체로 받을 수 있습니다. (JSON도 가능)

ex) Long으로 받기 (inesrt 작업 시 )

이런식으로 Long형을 선언하여 받았습니다.