В настоящее время я работаю над небольшим веб-сервисом 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)? Мне не нравится это решение, потому что я должен был бы сделать это для каждого объекта моей модели.
Надеюсь, я ясно разоблачил свою проблему, если она не понятна, не стесняйтесь задавать мне больше вопросов.
Спасибо за вашу помощь.
Вы можете использовать:
@Column(updatable = false)
@NonNull
private String firstName;
Это не приведет к ошибкам, но позволит избежать обновления поля.