簡體   English   中英

Spring Data Rest - 如何防止通過 PATCH 更新特定字段?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM