Feign Client
- Netfix에서 개발된 Http client binder이다.
- 간편하게 Rest Api를 호출할 수 있다.
의존성 주입 (build.gradle)
dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
...
}
Applicatoin - 어노테이션 등록
- @EnableFeignClients 등록
import ...
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class GugbabVocaServerApplication {
...
}
Feign Client - 인터페이스 생성
- @FeignClient 어노테이션 추가
- name : eureka서버에 등록되어있는 이름
package com.gugbab.gugbabservices.client;
import ...
@FeignClient(name = "GUGBAB-API-GATEWAY")
public interface VocaServerClient {
@GetMapping("/voca-server/star/all/{userId}")
StarsResponse getStarsByUser(@PathVariable String userId, @RequestHeader HttpHeaders headers);
}
Feign Client 사용 예시
package com.gugbab.gugbabservices.service;
import ...
@Service
@Slf4j
public class UserServicesImpl implements UserService {
...
VocaServerClient vocaServerClient;
@Autowired
public UserServicesImpl(VocaServerClient vocaServerClient, ...) {
this.vocaServerClient = vocaServerClient;
...
}
@Override
public UserDto getUserByUserId(String userId, HttpHeaders headers) {
...
// feign Client 사용
StarsResponse stars = vocaServerClient.getStarsByUser(userId,headers);
...
}
}
'MSA' 카테고리의 다른 글
[MSA] Apache Kafka란? Kafka 장단점 (0) | 2023.04.29 |
---|---|
[MSA] Spring Boot - Feign Client Debug, 예외처리, ErrorDecoder사용 (0) | 2023.04.25 |
[MSA] Spring Boot - RestTemplate 란? 사용 (0) | 2023.04.23 |
[MSA]Spring Boot - Config-server 대칭키 사용 (0) | 2023.04.14 |
[MSA] Spring Boot - Spirng Cloude Bus (RabbitMQ) (0) | 2023.04.13 |