간략한 설명
Feign Client는 Spring Cloud 프로젝트의 일부로서, 마이크로서비스 아키텍처에서 서비스 간 통신을 쉽게 처리하기 위한 클라이언트 라이브러리입니다. Feign은 HTTP 클라이언트 라이브러리인 Netflix의 Ribbon과 함께 작동하여 RESTful API 호출을 추상화하고 간소화합니다.
봐도 잘모르겟음. 그냥 api요청을 쉽게 처리하기위한 클라이언트 라이브러리라고 이해하고 넘어가야할듯
1. gradle 의존성 추가
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
2. Feign Client는 인터페이스를 생성하여 사용한다. 해당하는 클리이언트의 인터페이스를 생성해야함
@FeignClient(name = "userservice", url = "http://userservice-api.com")
public interface UserServiceClient {
@GetMapping("/users/{id}")
UserDTO getUserById(@PathVariable("id") Long id);
@PostMapping("/users")
UserDTO createUser(@RequestBody CreateUserRequest request);
}
- @FeignClient : 해당 인터페이스가 FeignClient임을 나타냄
- name : 클라이언트의 이름
- url : 호출할 서비스의 기본 url
- Getmapping, Postmapping 경로 지정
3. Feign Client 사용
FeignClient 인터페이스를 주입받고 해당 인터페이스를 호출하여 서비스간 통신을 수행한다.
Spring 에서 자동으로 FeignClient를 생성하고 관리해서 주입으로만으로 사용가능함
@RestController
public class UserController {
//아까 생성해둔 Fegin Client 인터페이스 주입
private final UserServiceClient userServiceClient;
public UserController(UserServiceClient userServiceClient) {
this.userServiceClient = userServiceClient;
}
@GetMapping("/users/{id}")
public UserDTO getUser(@PathVariable("id") Long id) {
return userServiceClient.getUserById(id);
}
@PostMapping("/users")
public UserDTO createUser(@RequestBody CreateUserRequest request) {
return userServiceClient.createUser(request);
}
}
대강 사용방법을 알았으니 다음은 실전을해봐야할듯;;
뭐로 도전해봐야할지 고민좀 해봐야겟다
'항해99 일지' 카테고리의 다른 글
FeignClient를 이용한 Naver와 Kakao Sociallogin구현 (0) | 2023.05.24 |
---|---|
클론프로젝트 네트워크 테스트 (0) | 2023.05.16 |
S3 버킷에 파일 쓰고 지우기 (0) | 2023.05.08 |
좋아요 기능과 회원탈퇴 기능 (0) | 2023.05.03 |
항해99 spring security (0) | 2023.04.30 |