我正在尝试使用Spring Data REST构建RESTful API。我定义了以下域模型,其中包含贷款及其状态。
public class Loan {
@Id
@GeneratedValue
private Long id;
private String loanTitle;
private Double loanAmount;
private Status status;
}
Status.java
public class Status {
@Id
@GeneratedValue
private Long id;
private String statusName;
}
现在要更新贷款的状态,我发送一个POST请求到端点loans/{id}/updateStatus
,状态在请求正文中。但有人也可以使用PATCH请求更新状态,我不希望这种情况发生,因为在更新状态之前需要应用业务规则。
那么如何防止通过PATCH请求更新Status对象?
答案 0 :(得分:0)
我一直在寻找解决此问题的方法,并且找到了行之有效的方法。
简单地覆盖模型中的setter,并在允许设置新值之前确保基础属性为null。
示例代码可用于合并和json-patch修补程序类型,但是Kotlin(对不起)
var uuid: String? = null
set(uuid) {
if (field == null) {
field = uuid
}
}