WebClient

2023. 5. 22. 11:52Spring

스프링 WebClient는 비동기적인 HTTP 요청을 처리하는 클라이언트 라이브러리입니다. 다음은 WebClient를 사용하는 기본적인 방법입니다:

  1. 1. WebClient 의존성 추가: 프로젝트의 Maven 또는 Gradle 파일에 WebClient 의존성을 추가해야 합니다.
implementation 'org.springframework.boot:spring-boot-starter-webflux'
  1. 2.WebClient 생성: WebClient를 생성하기 위해 WebClient.Builder를 사용합니다.
WebClient webClient = WebClient.builder().baseUrl("http://api.example.com").build();

baseUrl() 메서드를 사용하여 기본 URL을 설정할 수 있습니다. 이후에 요청을 보낼 때 상대 URL을 사용할 수 있습니다.

  1. 3. HTTP 요청 보내기: WebClient는 다양한 HTTP 메서드를 지원합니다. GET, POST, PUT, DELETE 등을 사용할 수 있습니다. 다음은 GET 요청을 보내고 응답을 받는 예시입니다.
webClient.get().uri("/users/{id}", 1)
    .retrieve()
    .bodyToMono(User.class)
    .subscribe(user -> {
        // 응답을 처리하는 로직
    });

uri() 메서드를 사용하여 요청의 URI를 설정합니다. 경로 변수를 사용하려면 {}를 사용하고, 해당 값을 uri() 메서드의 두 번째 인자로 전달합니다. retrieve() 메서드는 요청을 실행하고 응답을 가져옵니다.

  1. 4. 응답 처리: WebClient는 응답을 다양한 방식으로 처리할 수 있습니다. bodyToMono() 메서드는 응답을 Mono 형태로 변환하며, bodyToFlux() 메서드는 Flux 형태로 변환합니다. 이후에 Mono 또는 Flux를 구독하여 응답을 처리할 수 있습니다.

위의 예시에서는 bodyToMono(User.class)를 사용하여 응답을 User 객체로 변환하고, subscribe() 메서드로 비동기적으로 응답을 처리합니다.

이외에도 WebClient는 헤더 설정, 쿼리 매개변수 추가, 파일 업로드 등 다양한 기능을 제공합니다. 자세한 내용은 스프링 프레임워크의 공식 문서를 참조하시기 바랍니다.