簡體   English   中英

Rest API-列表項的預期HTTP代碼響應

[英]Rest API - expected http code response for list items

場景 :以下Rest api列出了屬於特定訂單的產品(在路徑{orderid}中給出了其ID)

/ api / order / {orderid} / products

最佳/建議的回應是什么?

/ api / order / 123 / products訂單123不存在,為什么?

選件

  1. 找不到404
  2. 200(帶空數組)
  3. 其他

404指示客戶端錯誤 ,“原始服務器未找到目標資源的當前表示或不願意透露該資源的存在”。

粗略地,您正在向客戶端(和中間組件)報告客戶端在請求該資源時出錯

這可能是一個不錯的選擇-資源被列為路徑段這一事實意味着層次結構 ,而且如果資源不存在,則其下屬資源也可能不存在。

換句話說,如果/api/order/123返回404,那么它就是語義一致(但不要求),與前綴的所有資源/api/order/123/ 回404。

為什么?

因為應該將服務器的實際實現隱藏在統一接口的后面。

統一界面的意義在於,客戶端無法說出它不是在與1990年代的通用網站進行通話。 就其而言, /api/order/123/products可以是名為/api/order/123的目錄中名為products的文件。

那么,如果我們嘗試在目錄不存在時嘗試從該路徑讀取文件,將會在文件系統上發生什么? 文件系統將返回錯誤(ENOENT?),然后Web服務器通常將向客戶端返回404響應。

REST API是一個適配器,使您的系統看起來像一個網站。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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