TestFeignClient.java
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
// name: FeignClient의 이름을 설정한다.
// url="${...}": yml에 설정되어 있는 URL 정보를 불러온다. (@FeignClient 어노테이션 내 url로 설정한 URL로 API를 쏜다.)
@FeignClient(name="test-api", url="${external-api.test.api-url}")
public interface TestFeignClient {
// headers: Request Header에 포함 할 정보를 추가 (yml 에서 불러옴)
@PostMapping(value = "/rest/test", headers = "Authorization=${external-api.test.authorization}")
XXX.Response test(final XXX.Request request); // Request DTO 와 Response DTO는 송/수신 형식 및 타입에 맞게 설정한다.
}
application.yml
# Feign Client Settings
feign:
client:
config:
test-api: # Feign Client 명
decode404: false
loggerLevel: full
connect-timeout: 3000
readTimeout: 60000
external-api:
test:
api-url: 'https://xxx.yyy.com'
authorization: 'ABC'
Request Header Authorization:ABC
POST
https://xxx.yyy.com/rest/test
로 API가 날라간다.