매일 매일, 차곡 차곡 쌓기



완벽하지 않은 것을 두려워 말며,
완성도를 높히는데 집중하자.

Spring/WebClient

[WebClient] Exchange

blockbuddy93 2024. 3. 28. 14:06

exchangeToMono() 및 exchangeToFlux() 메서드(또는 Kotlin에서 awaitExchange { } 및 exchangeToFlow { })는 응답 상태에 따라 응답을 다르게 디코딩해야 하는 고급 케이스에 유용합니다.

 

Mono<Person> entityMono = client.get()
        .uri("/persons/1")
        .accept(MediaType.APPLICATION_JSON)
        .exchangeToMono(response -> {
            if (response.statusCode().equals(HttpStatus.OK)) {
                return response.bodyToMono(Person.class);
            } else {
                // 에러로 전환
                return response.createError();
            }
        });


위와 같이 사용할 때 반환된 Mono 또는 Flux가 완료된 후에는 응답 본문이 확인되고 소비되지 않으면 메모리 및 연결 누수를 방지하기 위해 해제됩니다. 따라서 응답은 하류로 더 이상 디코딩할 수 없습니다. 필요한 경우 제공된 함수가 응답을 어떻게 디코딩할지 선언해야 합니다.

'Spring > WebClient' 카테고리의 다른 글

[WebClient] Filter  (0) 2024.03.28
[WebClient] RequestBody  (0) 2024.03.28
[WebClient] Retrieve  (0) 2024.03.28
[WebClient] Configuration Timeout  (0) 2024.03.28
[WebClient] Configuration Reactor Netty  (0) 2024.03.28