사용 방법

1. @FeignClient


2. @RestController와 @FeignClient에서 @RequestMapping 차이점

@RestController
@RequestMapping("/api")
public class MyController {
    
    @RequestMapping(method = RequestMethod.GET, value = "/hello")
    public String hello() {
        return "Hello, world!";
    }
}
@FeignClient(name = "elasticsearchClient", url = "${feign.secret.elasticsearchIP}")
public interface ElasticsearchClient {

    /**
     * 통합검색 > 논문 검색
     */
    @RequestMapping(method = RequestMethod.POST, value = "/paper/_search")
    Map<String, Object> searchPapers(@RequestBody Map<String, Object> body);
}

여기서 ElasticsearchClient 인터페이스는 호출할 때마다 "/paper/_search" 경로를 사용하여 지정된 URL("${feign.secret.elasticsearchIP}")에 HTTP POST 요청을 수행하도록 설계된 Feign 클라이언트입니다.

따라서 두 주석 모두 **@RequestMapping**이라고 부르지만 용도와 목적이 다릅니다.

<aside> 💡 RestController의 경우 들어오는 HTTP 요청을 처리하는 반면 Feign 클라이언트 인터페이스에서는 나가는 HTTP 요청의 대상 끝점을 정의합니다.

</aside>