RestTemplate
Spring 3부터 지원, REST API 호출이후 응답을 받을 때까지 기다리는 동기 방식
AsyncRestTemplate
Spring 4에 추가된 비동기 RestTemplate이다.
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);
}
Netflix OSS → Spring Cloud Netflix → Open Feign → Spring Cloud Open Feign
OpenFeign [장점]
그럼에도 불고하고 OpenFeign의 단점들도 눈에 띄였다. Feign 을 사용할때 장.단점을 잘 알고 사용 하자! Feign을 많이 사용하고 또 스프링의 프로젝트에 편입이 되었으니 스프링과의 통합으로 더 좋게 발전하지 않을까??