블로그

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설정 파일 HeaderConfigurationfeign의 RequestInterceptor를 재정의하여 빈으로 등록하여 사용한다.RequestTemplate의 다양한 속성들을 설정하거나 활용할 수 있다.feignClient에 configuration에 설정파일을 지정한다.FallbackfeignClient를 구현한 fallback 클래스를 생성하여 장애나 예외 상황을 처리할 수 있다.feignClient의 fallback에 해당 클래스를 지정한다.    

OpenFeignHttpClientFeignClient

채널톡 아이콘