Spring의 http 통신

Single Ko·2023년 7월 12일
0

공부하며 정리

목록 보기
7/17

RestTemplate

  1. RestTemplate
    Spring 3부터 지원, REST API 호출이후 응답을 받을 때까지 기다리는 동기 방식

  2. AsyncRestTemplate
    Spring 4에 추가된 비동기 RestTemplate이다.

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

Java의 SpringFramework가 지원하는 Rest 통신 방법..

RestTemplate 역시 잘 만들어진 도구이긴 하지만 직접 API 호출 코드를 작성해야 하므로 번거롭다. Netflix에서 시작된 OpenFeign 이라는 도구를 사용하면 Spring Data JPA 처럼 인터페이스와 어노테이션 기반으로 외부 API 호출을 손쉽게 작성할 수 있다.

@FeignClient(name = "ExchangeRateOpenFeign", url = "${exchange.currency.api.uri}")
public interface ExchangeRateOpenFeign {

    @GetMapping
    ExchangeRateResponse call(
            @RequestHeader String apiKey,
            @RequestParam Currency source,
            @RequestParam Currency currencies);

}

OpenFeign

Netflix OSS → Spring Cloud Netflix → Open Feign → Spring Cloud Open Feign

OpenFeign [장점]

  • 인터페이스와 어노테이션 기반으로 작성할 코드가 줄어들음
  • 익숙한 Spring MVC 어노테이션으로 개발이 가능함
  • 다른 Spring Cloud 기술들(Eureka, Circuit Breaker, LoadBalancer) 과의 통합이 쉬움

그럼에도 불고하고 OpenFeign의 단점들도 눈에 띄였다. Feign 을 사용할때 장.단점을 잘 알고 사용 하자! Feign을 많이 사용하고 또 스프링의 프로젝트에 편입이 되었으니 스프링과의 통합으로 더 좋게 발전하지 않을까??

profile
공부 정리 블로그

0개의 댓글