Как проверить запросы PATCH на больших объектах с помощью Spring - PullRequest
0 голосов
/ 18 февраля 2020

Не могу найти много информации об этом. Я читал, что PUT запросы должны использоваться для замены всего ресурса обновленным ресурсом, и что PATCH запросы должны использоваться для обновления только тех полей, которые вы хотите изменить. Но допустим, у меня есть очень большой объект с множеством вложенных полей и объектов, и я хочу обновить только указанные c поля в одном из его вложенных объектов, вместо того, чтобы заново отправлять всю вещь (потому что она слишком большая). Я должен был бы создать PATCH конечную точку. Как мне go проверить правильность такой конечной точки в Spring REST API? Я не могу понять, как конечная точка узнает, какие поля или вложенные поля она получила, и как проверить их, и заставить ли это работать для любого возможного поля, которое я могу дать.

1 Ответ

0 голосов
/ 18 февраля 2020

Когда приходит запрос весной, он приводит его к объекту, например.

 @PatchMapping("/customer/1")
 public void updateCustomer(@RequestBody CustomerPatch updateRequest) {
 }

Здесь мы приводим запрос исправления клиента к объекту CustomerPatch.

Благодаря этому мы можем проверить объект так же, как и с любым другим объектом.

Я лично использую аннотацию @Valid в сочетании с валидатором гибернации.

, чтобы мой пружинный контроллер выглядел так.

@PatchMapping("/customer/1")
public void updateCustomer(@RequestBody @Valid CustomerPatch updateRequest) {
}

public class CustomerPatch{
    @NotNull
    String cusotmerName;
}
...