[Spring] RestTemplate이란?

WOOK JONG KIM·2022년 11월 8일
0
post-thumbnail

RestTemplate 이란?

MSA에서 보통 다른 서버로 웹 요청을 보내고 응답을 받을 수 있게 도와주는 것에는RestTemplateWebClient가 있다

스프링에서 HTTP 통신 기능을 손쉽게 사용할 수 있도록 설계된 템플릿
-> RESTful 원칙을 따르는 서비스를 편리하게 만들 수 있다

기본적으로 동기 방식으로 처리, 현재 deprecated 된 상태

특징

  • Http 프로토콜의 메서드에 맞는 여러 메서드 제공
  • RESTful 형식을 갖춘 템플릿
  • HTTP 요청 후 JSON,XML,문자열 등의 다영한 형식으로 응답받을수 있음
  • 블로킹 기반의 동기 방식 사용
  • 다른 API 호출할 때 HTTP 헤더에 다양한 값 설정 가능

동작 원리

출처 : https://velog.io/@soosungp33/스프링-RestTemplate-정리요청-함

  1. 애플리케이션 즉 작성하는 코드 구현부에서 RestTemplate를 선언하고 URI, HTTP 메서드, Body 등을 설정

  2. 이를 바탕으로 외부 API에 요청을 보내면 RestTemplate 에서 HttpMessageConverter를 통해 RequestEntity를 요청 메세지로 변환

  3. RestTemplate에서는 변환된 요청 메세지를 ClientHttpRequestFactory를 통해 ClientHttpRequest로 가져온 후 외부 API로 요청을 보냄

  4. ClientHttpRequest 는 요청메세지를 만들어 HTTP 프로토콜을 통해 서버와 통신

  5. RestTemplate 는 ResponseErrorHandler 로 오류를 확인하고 있다면 처리로직을 태움

  6. ResponseErrorHandler 는 오류가 있다면 ClientHttpResponse 에서 응답데이터를 가져와서 처리

  7. RestTemplate 는 HttpMessageConverter 를 이용해서 응답메세지를 java object(Class responseType) 로 변환

  8. 어플리케이션에 반환

대표적 메서드

profile
Journey for Backend Developer

0개의 댓글