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 |