比方說,我有一個對象,Widget,由一個Id和一個名稱組成。假設我公開了一個端點/小部件,客戶端可以在其中發佈新的Widget對象。如果我想讓Id字段總是由服務器設置,不能由客戶端修改,但對客戶端仍然可見,我如何聲明Id字段不可修改?如果這有什麼不同,我正在使用RESTeasy。限制對RESTful API中特定字段的更新
0
A
回答
0
我可以想到幾個選項。
首先,你確定你需要公開ID作爲表示的一部分嗎?或者是否足以響應新發布資源的位置?
您的客戶端的帖子:
<Resource><Name>New Resource</Name></Resource>
而你回答:
HTTP/1.1 201 Created
...
Location: /resources/{new_resource_id}
除此之外,我認爲這是確定有一些簡單的,易於理解的與客戶約定。我認爲大多數開發人員都知道ID很可能是由系統生成的(特別是,因爲您正在執行POST而不是PUT)。對於不太明顯的情況下,如果你有任意的只讀域(或其他驗證或顯示信息),我認爲這可能是有意義的提供一個鏈接到元數據:
<NewPersonForm>
<atom:link href="/people/new/metadata" rel="/rels/metadata" />
<Name />
<Department>HR</Department>
</NewPersonForm>
元數據的樣子達你,但這些方針的東西可能會爲你工作:
<Metadata>
<Element>
<Name>Department</Name>
<IsReadOnly>True</IsReadOnly>
</Element>
</Metadata>
這是很好的,格式中立的(它可以很好地用於XML和JSON)的方式將信息提供給客戶,如果他們真的想,他們可以對它進行編程,以便即時創建表單(我用它來提供驗證信息,語言特定標籤和數據類型信息)。
我希望這會有所幫助。
約翰
0
你可以在服務器上編寫代碼,它可以隨意做任何事情。這包括根據需要添加或更改數據。檢查AtomPub protocol section 9.2明確規定:
由於服務器可以自由地改變 發佈的項目,例如,通過改變 原子的含量:id元素, 返回條目可以是有用 客戶端,使其能夠將 條目的客戶端和服務器視圖相關聯 。
相關問題
- 1. Firebase更新特定字段?
- 2. enquiry.php限制表單字段到特定的字符限制
- 3. 更新Solr中的特定字段
- 4. 改裝:只更新特定字段
- 5. Mongodb-Ruby限制到特定字段
- 6. 在Django Restful API Framework中限制用戶的某些模型字段
- 7. 如何更新CodeIgniter更新中的特定字段?
- 8. 限制對RESTful資源的訪問
- 9. 笨的RESTful API速率限制問題
- 10. 如何更新控制器方法上的特定字段值?
- 11. MongoDB:只更新特定字段
- 12. 是否可以將mongoDB中的更新查詢限制爲特定限制?
- 13. 將編輯限制在SharePoint 2010列表中的特定字段
- 14. 如何限制字段或獲取GetFeatureInfo請求中的特定字段?
- 15. 調用RESTFul API - HTTP POST限制
- 16. 偏字段更新REST API
- 17. Shopify API字段未更新
- 18. 定製Django中的特定字段管理更改表格
- 19. Android SQLite,從特定行更新特定字段
- 20. jQuery限制特殊字符和限制字段數
- 21. NetSuite API:更新自定義對象字段
- 22. AngularJS更新特定字段用新的數據
- 23. 新的Android面對API限制
- 24. android greendao只更新實體中的特定字段
- 25. 在特定行中更新文本文件中的特定字段
- 26. 如何使用特定字段更新特定記錄dbAccess swift
- 27. 使用Embed API限制用戶對特定路線的報告
- 28. 限制對特定REST API端點的公共訪問
- 29. Azure AD:限制消費者對特定Web API的訪問
- 30. 類中的字段限制