簡體   English   中英

如何驗證REST請求?

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

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