Как работать с методом исправления в Webclient?

#spring-boot #webclient #resttemplate

#весенняя загрузка #webclient #resttemplate

Вопрос:

Я искал пример для метода исправления в Webclient . У меня есть четыре поля в моем классе модели, мне нужно обновить одно поле (т.Е. Поле состояния), Поэтому я решил использовать метод исправления. Но у меня нет примеров в Интернете.

У меня есть фрагмент кода RestTemplate , здесь он мне нужен Webclient , так как я перехожу Webclient . Как добиться приведенного ниже кода?

 public void updateProfile(UpdateProfile profile, String uniqueId) {
        
        HttpHeaders headers = new HttpHeaders();
        MediaType mediaType = new MediaType("application", "merge-patch json");
        headers.setContentType(mediaType);

        HttpEntity<UpdateProfile> entity = new HttpEntity<>(profile, headers);
        HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
        RestTemplate restTemplate = new RestTemplate(requestFactory);

        restTemplate.exchange(firebaseUrl "/" path "/"   uniqueId   ".json", 
                HttpMethod.PATCH, entity, Void.class);
        
    }
 

Ответ №1:

Вы можете использовать следующий пример метода исправления из веб-клиента, я не тестировал, но надеюсь, что вы сможете использовать аналогичный подход.

         WebClient webClient = WebClient.create(firebaseUrl);
        webClient.patch()
                 .uri(" path "   uniqueId   ".json")
                 .contentType(MediaType.valueOf("application/json-patch json"))
                 .bodyValue(data)
                 .exchange();
 

не забудьте добавить приведенный ниже артефакт в свой pom.xml,

          <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>
 

Комментарии:

1. При этом обновляются все 4 поля. Не только поле состояния. Остальные поля обновляются как null.

2. Он используется PATCH , и, возможно, вам нужно вызвать дополнительный метод.