Spring, Spring Boot

[Spring Boot] HTTP 통신을 위한 OpenFeign

Yoon 2022. 5. 8. 17:14

OpenFeign?

REST형식의 API를 더 쉽게 호출할 수 있게 도와주는 오픈소스 라이브러리

 

넷플릭스에서 Feign라이브러리를 자체적으로 구현하여 사용되었다가

현재는 오픈소스인 OpenFeign이라는 라이브러리가 나와 더 많은 기능들이 지원되고 있다고한다.


적용법, 예제

단순 REST API CALL에 대한 적용법이다.

 

1. Dependency 추가

https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-openfeign

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2. SpringBootApplication에 @EnableFeignClents 어노테이션 추가

3. REST API에 대한 FeignClient Interface 작성

해당 인터페이스의 getMessageFeignApi를 호출하게 되면

"http://localhost:7500/feign/msg" 경로로 GET 방식으로 호출하게 된다.

(@RequestParam을 사용해 파라미터와 함께 요청도 가능하다.)

 

4. REST API 호출에 대한 처리 로직 작성

5. REST API 호출 테스트 작성

openFeignClient.getMessage(param); 부분을 보면

Feign 인터페이스에 정의된 메소드 만으로 API 호출을 할 수 있게 된다.

 

이 밖에도

call Fail에 대한 처리(fallBack),

connection time out 설정 등 다양한 

API 호출에 대한 설정 처리를 할 수 있다.

 

이 전에 작성한 RestTemplate 보다 더 간편하게 API 호출 로직을 작성할 수 있는 것 같다.


RESULT

Console