본문 바로가기
Spring

Spring - RestTemplate

by 밍상 2022. 3. 11.

RestTeamplate은 스프링 3부터 지원하는 HTTP 요청을 수행하기 위한 동기식 클라이언트다.

필드(Field)

- logger

 

생성자(Constructor)

- RestTemplate()

기본 세팅으로 RestTemplate 인스턴스를 만든다.

- RestTemplate(ClientHttpRequestFactory requestFactroy)

ClientHttpRequestFactory에 기반해서 인스턴스를 만든다.

- RestTemplate(List<HttpMessageConverter<?>> messageConverters)

주어진 HttpMessageConverter 리스트를 사용해 인스턴스를 만든다.

 

메서드(Method)

getForObject

- <T> T getForObject(String url, Class<T> responseType, Map<String, ?> uriVariables)

- <T> T getForObject(String url, Class<T> responseType, Object... uriVariables)

- <T> T getForObject(String url, Class<T> responseType)

주어진 url 주소로 HTTP GET 요청을 보내서 객체로 결과를 반환받는다. 두번째 파라미터인 responseType을 통해서 결과로 받을 객체 타입을 정한다.

 

getForEntity

- <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Map<String, ?> uriVariables)

- <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Object... uriVariables)

- <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType)

getForObject와 내용은 비슷하지만 결과를 ResponseEntity로 반환받는다.

 

postForObject

- <T> T postForObject(String url, Object request, Class<T> responseType, Map<String, ?> uriVariables)

- <T> T postForObject(String url, Object request, Class<T> responseType, Object... uriVariables)

- <T> T postForObject(String url, Object request, Class<T> responseType)

주어진 url 주소로 HTTP POST 요청을 보내서 객체로 결과를 받는다. POST 요청이기 때문에 request라는 파라미터가 추가됐다.

 

postForEntity

- <T> ResponseEntity<T> postForEntity(String url, Object request, Class<T> responseType, Map<String, ?> uriVariables)

- <T> ResponseEntity<T> postForEntity(String url, Object request, Class<T> responseType, Object... uriVariables)

- <T> ResponseEntity<T> postForEntity(String url, Object request, Class<T> responseType)

postForObject와 비슷한 요청을 수행하고, 결과를 ResponseEntity로 반환받는다.

 

postForLocation

- URI postForLocation(String url, Object request, Map<String, ?> uriVariables)

- URI postForLocation(String url, Object request, Object... uriVariables)

- URI postForLocation(URL url, Object request)

지정된 객체를 url에 POST요청을 수행해서 새 리소스를 생성하고 위치 헤더 값을 반환받는다.

 

delete

- void delete(String url, Map<String, ?> uriVariables)

- void delete(String url, Object... uriVariables)

- void delete(URI url)

특정 uri 주소로 HTTP DELETE 메서드를 실행한다.

 

put

- void put (String url, Object request, Map<String, ?> uriVariables)

- void put (String url, Object request, Object... uriVariables)

- void put (URL url, Object request)

지정된 객체를 url에 PUT하여 리소스를 생성하거나 업데이트한다. 

 

patchForObject

- <T> T patchForObject(String url, Object request, Class<T> responseType, Map<String, ?> uriVariables)

- <T> T patchForObject(String url, Object request, Class<T> responseType, Object... uriVariables)

- <T> T patchForObject(String url, Object request, Class<T> responseType)

객체를 url에 PATCH해서 리소스를 업데이트하고 응답에 있는 표현(representation)을 반환합니다.

 

headForHeaders

- HttpHeaders headForHeaders(String url, Map<String, ?> uriVariables)

- HttpHeaders headForHeaders(String url, Object... uriVariables)

- HttpHeaders headForHeaders(URI url)

URI 템플릿에서 지정한 리소스의 헤더를 모두 검색합니다.

 

 

- <T> ResponseExtractor<ResponseEntity<T>> responseEntityExtractor(Type responseType)

- void setDefaultUriVariables(Map<String, ?> uriVariables)

- void setErrorHandler(ResponseErrorHandler errorHandler)

- void getErrorHandler()

- void setMessageConverters(List<HttpMessageConverter<?>> messageConverters)

- void setUriTemplateHandler(UriTemplateHandler handler)