簡體   English   中英

返回REST API中錯誤的HTTP方法的代碼?

[英]Return code for wrong HTTP method in REST API?

我們的API用戶可以通過向根API地址發送GET請求來獲取文檔(集合列表)。 如果他發送POST ,我們應該返回一些東西。 同樣的問題適用於其他資源路徑,例如在查詢路徑上發送PATCH等。並非所有方法在某些路徑上都有意義。

正如我從HTTP RFC中看到的那樣,我們應該返回代碼405不允許使用Method,並使用允許的方法列表發送回Allowed響應頭。

我看到例如GitHub API返回404 :在我上面解釋的情況下找不到 (將POST發送到root)。

什么是正確的回應? 404405 我看到405更適合開發人員,所以有什么理由不使用它嗎?

根據HTTP規范和REST准則,在這種情況下的預期行為是返回405 Method Not Allowed 資源就在那里,因為GET可以工作,所以404 Not Found會讓人感到困惑。

我不熟悉GitHub API但在某些情況下我看到403 Forbidden它也返回404 Not Found

在某些地方,需要身份驗證的請求將返回404 Not Found,而不是403 Forbidden。 這是為了防止私有存儲庫意外泄露給未經授權的用戶。

也許根域地址上的行為是一個更大的機制的一部分,它通常處理這種情況,誰知道。 也許你會問

暫無
暫無

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

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