#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
, и, возможно, вам нужно вызвать дополнительный метод.