[Spring] WebClient 라이브러리를 활용한 외부 API 호출 시 발생하는 scanAvailable 에러
·
Back-end/Spring
1. WebClient 라이브러리를 활용하여 GPT 서버 API 호출사용자가 prompt를 입력하면, 이 prompt를 Request Body로 담아주고 GPT 서버 API를 호출하면 API는 응답 값으로 String 배열을 리턴해준다. 이 API의 response body를 받아와서 배열 내 문자열을 바탕으로 각 Bubble이라는 엔티티 객체를 만들어 DB에 저장하는 로직을 구현하고자 하였다.@PostMapping("/create")@Operation(summary = "버블 생성 API", description = "프롬프트를 기준으로 GPT API에서 뽑아준 청크 단위로 버블 생성 후 반환")public ApiResponse> createBubbles( @AuthenticationPri..
[Spring] WebClient를 통한 공공데이터 Open API 호출
·
Back-end/Spring
공공데이터 Open API를 사용하는 서비스의 흐름을 알기 위해 공부를 하면서 알게 된 내용들을 기록하는 글입니다. 오류나 고쳐야 할 사항들이 있다면 피드백 부탁드리겠습니다!WebFlux 라이브러리를 사용한 이유Spring에서 외부 API를 사용할 수 있는 종류는 다음과 같다.HttpURLConnectionRestTemplateWebClientHttpURIConnection은 URLBuilder를 사용하여 코드를 작성한 것으로, 생각보다 코드가 길고 장황하다.RestTemplate은 Spring에서 지원하는 객체로, 동기식으로 Rest 방식 API를 호출할 수 있는 Spring 내장 클래스이다.동기적으로 동작하기 때문에 요청/응답 동안 스레드가 차단되는 문제점이 있을 뿐더러, Spring boot 5...
[Spring] WebClient를 사용한 외부 API 통신
·
Back-end/Spring
사이드 프로젝트를 진행하며 모델 서버와의 연동이 필요했는데, Spring Boot의 WebClient 라이브러리를 사용하여 해결했었다. 제대로 공부해야 할 것 같아서 기록한다. WebClient란?Spring에서 외부 API 서버와의 통신하는 방법으로는 RestTemplate과 WebClient 두 가지 방법이 있다. 그 중 WebClient에 대해 파헤쳐보자 WebClient는 RestTemplate를 대체하는 HTTP 클라이언트이다.기존의 동기 API를 제공할 뿐만 아니라, 논블로킹 및 비동기 접근 방식을 지원해서 효율적인 통신이 가능하다! WebClient는 요청을 나타내고 전송하게 해주는 빌더 방식의 인터페이스를 사용하며, 외부 API로 요청을 할 때 리액티브 타입의 전송과 수신을 한다. (Mon..