[英]How to validate REST request?
提供此服務:
POST /hotel HTTP/1.1
<hotel>
<a>aaa</a>
<b>bbb</b>
<c>ccc</c>
</hotel>
HTTP/1.1 201 CREATED
Location: /hotel/123
當我們在服務器上處理請求時,我們將針對DTD驗證請求中的hotel
XML。
問題是,作為REST最佳實踐,客戶端應該在請求中引用DTD(就像在基於DTD創建XML文檔時通常那樣)嗎? 還是這不是必需的? DTD將在API文檔中進行描述,因此客戶端服務的編寫者將了解DTD驗證詳細信息。
據我所知,REST對POST正文的內容無話可說。
顯然,無論如何,您都必須在服務器上驗證XML,因此,您最好的做法是建議客戶端在發送DTD之前先針對DTD驗證XML,以節省時間和帶寬。 但是,您實際上沒有辦法執行它。
我認為您作為服務編寫者的責任是接受請求,無論請求是否涉及DTD,但這只是我的觀點。
好吧,如果請求正文未能通過DTD檢查,您當然可以吐出一個400 Bad Request
,但是我不需要DTD引用。 您應該允許它被省略,如果有的話就使用它,但是如果他們指定了錯誤的DTD,我也會使請求失敗。 該錯誤消息當然應該指出預期的DTD是什么。
如果省略了DTD,您可能要考慮跳過嚴格的一致性檢查,因為這是人們在設置軟件時想要的東西,但是出於性能方面的考慮,可能希望在知道一切之后再退出工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.