HttpClient 기반 OpenFeign - 외부 API 호출
OpenFeign이란
외부API를 간편하게 호출할 수 있는 HttpClient 라이브러리
외부API 호출을 추상화하여 정의해놓고 로직처럼 호출하여 사용할 수 있다
AOP 방식으로 동작한다
AOP는 관점지향 프로그래밍으로 특정 핵심 로직이 아닌 공통적으로 사용되는 로직을 분리하여 관리하는 방식으로 트랜잭션, 캐시 등에 사용된다
설정방법
gradle에 spring-cloud-starter-openfeign 의존성을 추가한다
spring cloud 버전정보를 dependencyManagement 정보에 추가한다.
@EnableFeignClients로 open feign을 활성화
사용법
FeignClient 인터페이스 생성
@FeignClient(name = "name", url = "${url}")
url에는 호출할 외부 도메인 전달한다. 설정파일에 값을 정의해두고 Spring Value를 활용한다.
controller interface 형식으로 호출할 외부 api 정의
Spring API 정의하는 것과 마찬가지로 @GetMapping, parameter, return 값 등을 정의한다.
필요할 경우 header도 정의한다.
생성한 FeignClient를 의존 주입받아서 메서드를 호출하는 방식으로 외부 API를 호출한다
Header 설정
feignClient의 @Headers
파라미터로 전달하는 @RequestHeader
설정 파일 HeaderConfiguration
feign의 RequestInterceptor를 재정의하여 빈으로 등록하여 사용한다.
RequestTemplate의 다양한 속성들을 설정하거나 활용할 수 있다.
feignClient에 configuration에 설정파일을 지정한다.
Fallback
feignClient를 구현한 fallback 클래스를 생성하여 장애나 예외 상황을 처리할 수 있다.
feignClient의 fallback에 해당 클래스를 지정한다.
댓글을 작성해보세요.