Spring Data Rest PATCH запрещает обновление определенных полей

2

В настоящее время я работаю над небольшим веб-сервисом REST с использованием Spring -d ata-rest, используя:

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

Я выполнил следующее руководство: https://spring.io/guides/gs/accessing-mongodb-data-rest/, и он работает отлично.

Я добавляю аннотацию на свой Person.class, чтобы проверить объект во время запроса POST (например, @NonNull и т.д.) Следующим образом:

public class Person {

    @Id
    private String id;

    @NonNull
    private String firstName;

    @NonNull
    private String lastName;

    private Integer age;

}

Но теперь я хочу сделать запрос PATCH для обновления моего объекта (сделав запрос curl -X PATCH http://localhost: 8080/people/598c2a80d8425fae64161cc4 -d '{"age": 23}').

Он также отлично работает, но я хочу предотвратить обновление некоторых полей, людям не разрешается, например, обновлять firstName и lastName.

Есть ли способ сделать это с помощью аннотации? Или мне нужно выполнить выборочную проверку для каждого запроса PATCH (или PUT)? Мне не нравится это решение, потому что я должен был бы сделать это для каждого объекта моей модели.

Надеюсь, я ясно разоблачил свою проблему, если она не понятна, не стесняйтесь задавать мне больше вопросов.

Спасибо за вашу помощь.

Теги:
spring
rest

1 ответ

0

Вы можете использовать:

@Column(updatable = false)
@NonNull
private String firstName;

Это не приведет к ошибкам, но позволит избежать обновления поля.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню