매일 매일, 차곡 차곡 쌓기



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

Spring/WebClient

[WebClient] Context

blockbuddy93 2024. 3. 28. 14:30

Attributes 는 필터 체인에 정보를 전달하는 편리한 방법을 제공하지만, 이는 현재 요청에만 영향을 줍니다. 만약 flatMap을 통해 중첩된 추가 요청에 영향을 주거나 concatMap을 통해 실행된 후 추가적인 요청에 영향을 주는 정보를 전달하려면 Reactor Context를 사용해야 합니다.

 

Reactor Context는 모든 작업에 적용되도록 반응적인 체인의 끝에 채워져야 합니다. 예를 들어:

WebClient client = WebClient.builder()
        .filter((request, next) ->
                Mono.deferContextual(contextView -> {
                    String value = contextView.get("foo");
                    // ...
                }))
        .build();

client.get().uri("https://example.org/")
        .retrieve()
        .bodyToMono(String.class)
        .flatMap(body -> {
                // 중첩된 요청 수행 (컨텍스트가 자동으로 전파됨)...
        })
        .contextWrite(context -> context.put("foo", ...));

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

[WebClient] WebClient Bean 구성  (0) 2024.03.28
[WebClient] Synchronous Use  (0) 2024.03.28
[WebClient] Attributes  (0) 2024.03.28
[WebClient] Filter  (0) 2024.03.28
[WebClient] RequestBody  (0) 2024.03.28