[英]Spring Data Rest - How to prevent update of specific fields through PATCH?
我正在嘗試使用 Spring Data REST 構建一個 RESTful API。 我定義了以下域模型,其中包含貸款及其狀態。
public class Loan {
@Id
@GeneratedValue
private Long id;
private String loanTitle;
private Double loanAmount;
private Status status;
}
狀態文件
public class Status {
@Id
@GeneratedValue
private Long id;
private String statusName;
}
現在要更新貸款的狀態,我向端點loans/{id}/updateStatus
發送 POST 請求,並在請求正文中包含狀態。 但是有人也可以使用 PATCH 請求更新狀態,我不希望這種情況發生,因為在更新狀態之前需要應用業務規則。
那么如何防止通過 PATCH 請求更新 Status 對象呢?
我一直在尋找解決這個問題的方法,我發現了一些很有效的方法。
只需覆蓋模型中的 setter,並確保在允許設置新值之前底層屬性為 null。
示例代碼適用於合並和 json-patch PATCH 類型,但適用於 Kotlin(抱歉)
var uuid: String? = null
set(uuid) {
if (field == null) {
field = uuid
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.