2017-08-22 80 views
0

方案預期的HTTP代碼響應: 屬於一個特定的順序(鑑於其在路徑ID {訂單ID})以下REST API列表產品REST API列表項

/API /順序/ {}訂單ID /產品

什麼是

/API /順序/ 123 /最佳產品/推薦的響應,其中定單123不存在,爲什麼?

選項

  1. 404未找到
  2. 200與空數組
  3. 其他
+0

[REST API代碼/消息丟失父資源]的可能重複(https://stackoverflow.com/questions/15384260/rest-api-code-message-for-missing-parent-resource) – jannis

回答

0

404表示client error,說:「原始服務器沒有找到目標當前表示資源或不願意透露存在「。

粗略地說,您向客戶(和中介組件)報告客戶在請求該資源時犯了一個錯誤。

這很可能是一個不錯的選擇 - 資源被列爲路徑段的事實意味着hierarchy,並且很可能是資源不存在而不是其下屬資源。

換句話說,如果/api/order/123返回404,那麼它就是語義一致(但不要求)以前綴/api/order/123/返回404

爲什麼所有的資源呢?

因爲你的服務器的實際實現應該隱藏在統一界面之後。

統一接口的一點是,客戶端不能說它不是在與一般的20世紀90年代網站交談。就其而言,/api/order/123/products可能是名爲/api/order/123的目錄中名爲products的文件。

那麼,如果我們試圖在目錄不存在的情況下從該路徑讀取,文件系統上會發生什麼?文件系統會返回一個錯誤(ENOENT?),然後Web服務器通常會向客戶端返回一個404響應。

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