# feignclient

[스프링부트 핵심 가이드] chapter12. 서버 간 통신
1) RestTemplate이란 사전 지식 최근 서비스들은 MSA 주로 채택 1) MSA (마이크로 서비스 아키텍처 ) 2) 애플리케이션이 갖는 서비스(기능)가 하나의 비즈니스 범위만 갖는 형태 3) 자신의 서비스(기능) API로 노출하고 다른 서버가 이를 호출해 사용하도록 구성 3-1. 각 서버가 다른 서버의 클라이언트 되는 경우도 많음 4) 다른 서버로 웹 요청 송・수신 돕는 템플릿 : RestTemplate, WebClient 심화 : 스프링 인 액션 2장 - 통합된 스프링 학습 1. RestTemplate 스프링에서 HTTP 통신 기능을 손쉽게 사용하도록 설계된 템플릿 RESTful 원칙 따르는 서비스 생성 가능 기본적으로 동기 방식[1]으로 처리됨 지원 중
스프링 Feign Client 적용하기 - (1)
이 게시글은 Feign Client를 공부하고 프로젝트에 적용한 경험에 대한 회고록을 작성했습니다. Feign Client이란? ⇒ 선언적으로 사용할 수 있는 Http Client Feign Client의 소개 > Netflix에 의해 처음 만들어진 선언적인 HTTP Client 도구로써, 외부 API 호출을 쉽게할 수 있도록 도와준다. 여기서 “선언적인” 이란 어노테이션 사용을 의미하는데, Open Feign은 인터페이스에 어노테이션들만 붙여주면 구현이 된다. 이러한 방식은 Spring Data JPA와 유사하며, 상당히 편리하게 개발을 할 수 있도록 도와준다. ⇒ 외부 컴포넌트와 통신을 하는데 있어서, 여러 개의 클라이언트가 존재! 보통은 restTemplete 많이 사용하지만 요즘은 Feign Client도 많이 사용함 하게 된 배경 기존의 프로젝트에서 GitHub API 통신을 해서 해당 유저의 닉네임을 조회하고 프로필 이미지를 가져오는
PKIX path building failed
SpringBoot에서 feignClient를 사용해 외부 API를 호출하니 아래와 같은 오류가 발생했다. 원인 대부분의 원인은 연결하려는 site의 인증서가 JVM의 신뢰하는 인증서 목록에 없는 경우이다. 해결방법 문제되는 사이트의 SSL인증서를 추출해서 등록하면 해결된다. 1. InstallCert.java 다운로드 lesstif님의 gist에서 다운로드 받았고 다른 경로에서 다운로드 받아도 된다. 2. 다운로드 받은 코드를 컴파일 3. 연결하려는 사이트 도메인을 포함하여 실행 4. 2개의 인증서 중 두번째 인증서를 선택하여 저장한다. 5. 아래와 같은 메세지가 출력되는데 keystore(jssecacerts)값과 alias(test.com-2)를 기억하거나 저장한다. 6. keystore파일 jssecacerts에 있는
FeignClient CustomLogger 구현
다음과 같이 FeignClient용 CustomLogger를 구현했는데 java.io.IOException: stream is closed 오류가 발생했고 원인은 FeginClient 메시지 디코더였다. CustomLogger에서 Response Body Stream을 이미 열어 확인을 한 후에 ResponseEntityDecoder에 요청을 보내는데 ResponseEntityDecoder 입장에서는 이미 스트림이 닫혀있어 오류가 발생한 것이였고, 따라서 Logging 시에는 Response body를 직접 열지 않고 Response 전체를 로깅하는것으로 변경하였다. 참고용으로 FeignClient 라이브러리 ResponseHandler 클래스의 코드를 첨부한다. 수정) 2023/04/07 : Stream is Closed 오류가 간헐적으로 발생중..

(Reactive)FeignClient Exception Handling
가는 말은 고왔는데, 오는 말은... 개인 프로젝트 진행중에, ReactiveFeignClient (이하 FeignClient) 의 Exception을 핸들링해야 하는 상황이 생겼다. FeignClient를 통해 Request를 날렸는데, 응답은 401을 받았지만 500에러를 뱉은 것. FeignClient는 위와 같이 작성했고, 뱉은 에러는 아래와 같다. 3rd party app에서 뱉은 에러코드를 동일하게 출력해주도록 한다. Configuration 수정 ErrorDecoder Bean 등록 에러가 발생하면

Feign Client 알아보기
1. Feign Client 란? 1) Feign Client는 web service 클라이언트를 보다 쉽게 작성할 수 있도록 도와줍니다. 2) interface를 작성하고 annotation을 붙여주면 세부적인 내용 없이 사용할 수 있기 때문에 코드 복잡도가 낮아집니다. 3) Netflix 에서 만들어졌고, spring-cloud-starter-openfeign 으로 스프링 라이브러리에서 사용할 수 있습니다. 간단한 사용법에 대해 알아봅시다. 2. 사용법 0) 시나리오 컨트롤러 2개 1) "/", 2) "/testfeign" 를 한 서버에서 사용할 것이고, 결과적으로 Feign Client가 자신의 서버에 http 요청을 보내서 응답을 받는 형태가 됩니다. ![스크린샷 2019-10-06 오후 3.42.56.png](https://images.velog.io/post-images/skyepodium/8c72d580-