【发布时间】:2017-08-11 12:46:04
【问题描述】:
我目前正在使用 spring-data-rest 开发一个小型 REST Web 服务:
<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)请求进行自定义验证?我不喜欢这种解决方案,因为我必须对模型的每个实体都这样做。
我希望我清楚地暴露了我的问题,如果不清楚,请随时问我更多问题。
感谢您的帮助。
【问题讨论】: