Spring

WebFlux를 사용할 때 HTTP DELETE로 본문을 보내는 방법은 무엇입니까? 물어보다

기록만이살길 2022. 11. 5. 15:27
반응형

WebFlux를 사용할 때 HTTP DELETE로 본문을 보내는 방법은 무엇입니까? 물어보다

1. 질문(문제점):

엔드포인트 를 제공하는 HTTP API에 액세스하고 싶습니다 DELETE. 이 특정 끝점은 항목 List(삭제하려는)을 JSON 본문으로 예상합니다.

이제 내 문제는 Spring Webflux를 사용하고 있다는 것입니다. 그러나 WebClient 는 요청 과 함께 본문을 보낼 수 있는 가능성을 제공하지 않습니다 DELETE. 의 경우 다음을 POST수행합니다.

webClient.post()
         .uri("/foo/bar")
         .body(...)
         .exchange()

그러나 , 나는 다음을 제공하는 옵션을 제공하지 않는 RequestHeadersSpecDELETE 을 얻습니다 .body(...)

webClient.delete()
         .uri("/foo/bar")
         .body(...)       <--- METHOD DOES NOT EXIST
         .exchange()

그렇다면 클라이언트 측에서 Spring Webflux로 이것을 달성하는 방법은 무엇입니까?

2. 해결방안:

  return webClient
            .method(HttpMethod.DELETE)
            .uri(url)
            .body(Mono.just(request), requestClass)
            .retrieve() 
            .toEntity(Void.class);

결과적으로 다음을 얻을 수 있습니다.

 Mono<ResponseEntity<Void>>
60323359
반응형