Java프로그래밍

[스프링부트] OpenFeign (오픈페인) 개발 예제 코드 템플릿

OpenFeign은 MS내에서 타MS의 API를 쉽게 호출할 수 있도록 도와주는 오픈소스이다.

API를 호출하는 OpenFeign Client 인터페이스와 호출한 api가 오류가 발생할때 동작하는 FallFactory 클래스 2개의 java파일로 구성된다.

OpenFeign Client에는 @FeignClient 어노테이션을 정의하고 name, url, fallbackFactory를  선언한다.

예제 템플릿은 다음과 같다.

OpenFeign Client 인터페이스 생성

@FeignClient(name=”test”, url=”${api.test.url}”, fallbackFactory=”TestFallbackFactory.class”)

public interface TestClient {

   @PostMapping(“/test/selectUserInfo”)

    UserOutVo testUsrInfo(@RequestHeader(“test_header”) String feignHeder, @RequestBody UserInVo);

}

참고로 @RequestHeader는 생략가능하다.

FallbackFactory 클래스 생성

@Component

public class TestFallbackFactory implements FallbackFactory<TestClient> {

   @Override

    public TestClient create(Throwable cause) {

       

        return new TestClient() {

              @Override

                public UserOutVo openFeginSend((@RequestHeader(“test_header”) String feignHeder, @RequestBody UserInVo) {

                     return UserOutVo.builder().msg(“오류발생”).build();

                }

         }

    }

}

OpenFeign Client 호출

@Component

@RequiredArgConstructor

public class TestContorller {

     private final TestClient testClnt;

     public void saveTest() throws Exception {

             UserInVo uvo = new UserInVo();

             uvo.setUserId(“test”);

             UserOutVo = testClnt.openfeignSend(“header”, uvo);

       }

}

오픈페인 클라이언트로 API호출 후 오류발생시 프레임워크에서 FallbackFactory를 호출한다.

마지막으로 @EnableFeignClients 어노테이션 정의가 필요하다.

@EnableFeignClients 어노테이션 선언

스프링부트 Application 클래스를 열고 @EnableFeignClients 어노테이션을 추가해준다.

@SpringBootApplication

@ComponentScan(“com.test”)

@EnableFeignClients

public class TestApplication {

   public static void main(String[] args) {

        SpringApplication.run(TestApplication.class, args);

    }

}

error: Content is protected !!