[英]Return code for wrong HTTP method in REST API?
我們的API用戶可以通過向根API地址發送GET
請求來獲取根文檔(集合列表)。 如果他發送POST
,我們應該返回一些東西。 同樣的問題適用於其他資源路徑,例如在查詢路徑上發送PATCH
等。並非所有方法在某些路徑上都有意義。
正如我從HTTP RFC中看到的那樣,我們應該返回代碼405
: 不允許使用Method,並使用允許的方法列表發送回Allowed
響應頭。
我看到例如GitHub API返回404
:在我上面解釋的情況下找不到 (將POST
發送到root)。
什么是正確的回應? 404
或405
? 我看到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.