RestTemplate 이란
http server 와 통신을 단순화 하고 Restful 원칙을 지키도록 구성된 클래스
json과 xml 을 쉽게 받을 수 있도록 헤더 및 파서가 구성되어 있다.
RestTemplate 작동 순서
- 어플리케이션이 RestTemplate를 생성하고, URI, HTTP메소드 등의 헤더를 담아 요청한다.
- RestTemplate 는 HttpMessageConverter 를 사용하여 requestEntity 를 요청메세지로 변환한다.
- RestTemplate 는 ClientHttpRequestFactory 로 부터 ClientHttpRequest 를 가져와서 요청을 보낸다.
- ClientHttpRequest 는 요청메세지를 만들어 HTTP 프로토콜을 통해 서버와 통신한다.
- RestTemplate 는 ResponseErrorHandler 로 오류를 확인하고 있다면 처리로직을 태운다.
- ResponseErrorHandler 는 오류가 있다면 ClientHttpResponse 에서 응답데이터를 가져와서 처리한다.
- RestTemplate 는 HttpMessageConverter 를 이용해서 응답메세지를 java object(Class responseType) 로 변환한다.
- 어플리케이션에 반환된다.
RestTemplate rootUrl 등록 방법
builder.uriTemplateHandler(new RootUriTemplateHandler("http://url....")).build();
- builder.rootUri("http://...").build() 로도 가능하다.
- 위와같이 생성된 RestTemplate 을 이용하면 execute("/path", ....) 으로 rest api 호출이 가능하다.
RestTemplate 추가 설정
- RestTemplate에 추가적인 설정을 하려면 RestTemplateBuilder.각 설정 메서드 들 사용을 고려해보자.
- RestTemplate 객체에 전역적인 설정을 하려면 RestTemplateCustumizor 를 구현하여 이용해보자.
(참고: RestTemplate Docs)
(글 작성시참고) https://sjh836.tistory.com/141
'SPRING' 카테고리의 다른 글
Spring Rest Docs 사용법 (0) | 2021.05.02 |
---|---|
Spring Batch (0) | 2021.04.28 |
스프링 비동기 타임아웃 설정 변경 (0) | 2020.11.23 |
spring 예외 핸들링 (0) | 2020.11.22 |
SpringBoot 에서 mobile리졸버 추가하기 (0) | 2020.10.27 |