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에 해당 클래스를 지정한다.

 

 

 

 

댓글을 작성해보세요.

채널톡 아이콘