이제 라이선싱 서비스에서 Feign 클라이언트를 사용하도록 설정했으므로 조직 서비스의 엔드포인트를 호출할 Feign 클라이언트의 인터페이스 정의를 살펴보자. 다음 코드는 이 예를 보여 주며, src/main/java/com/optimagrowth/license/service/client/OrganizationFeignClient.java 클래스 파일에 있다.
코드 6-16 조직 서비스를 호출하는 Feign 인터페이스 정의하기
// 이해를 돕기 위해 package와 import 문 생략
@FeignClient("organization-service") ➊
public interface OrganizationFeignClient {
@RequestMapping( ➋
method=RequestMethod.GET,
value="/v1/organization/{organizationId}",
consumes="application/json")
Organization getOrganization(
@PathVariable("organizationId") ➌
String organizationId);
}
➊ Feign에 서비스를 알려 준다.
➋ 엔드포인트 경로와 액션(verb)을 정의한다.
➌ 엔드포인트에 전달되는 매개변수를 정의한다.
코드 6-16에서 @FeignClient 애너테이션을 사용하여 인터페이스를 대표할 서비스의 애플리케이션 ID를 전달했다. 그런 다음 클라이언트가 조직 서비스를 호출하려고 호출되는 getOrganization() 메서드를 정의했다.