405 方法不允许删除
405 Method Not Allowed for DELETE
当我尝试 DELETE 而未传递需要 deleted.Here 是我的 URL
的资源 ID 时,我收到“405 方法不允许”
http://localhost:8080/api/vendors/delete/1234/
理想情况下,我应该在 URL 末尾给出 ID,例如:
http://localhost:8080/api/vendors/delete/1234/{id}
我确信它应该是 405,但我的 QA 团队不这么认为。他们说它应该是 400。有人可以向我指出任何资源,这些资源清楚地指定了在这种情况下它应该是什么 HTTP 代码。
根据我的意见,404 Not Found 或 400 Bad Request 是一个不错的选择。
也请参考这个答案
对于你的主要问题,如果方法是DELETE
并且路径/api/vendors/delete/1234/
对其他方法有效但不适用于DELETE
,那么 405 Method Not Allowed
("A request method is not supported for the requested resource") 是正确的,因为那个路径上有一个 "resource" 不支持删除,例如它可能支持 GET
检索供应商列表。
如果那里没有资源,即方法无关紧要,那么 404 Not Found
("The requested resource could not be found") 将是正确的响应。
如果方法是 DELETE
,而不是 GET
、PUT
、POST
或任何其他方法,则您不需要.../delete/...
在路径中。
如果您尝试删除供应商 1234,则路径应为 http://localhost:8080/api/vendor/1234
,方法应为 DELETE
。操作处理程序应在声明中使用 /api/vendor/{id}
。
当我尝试 DELETE 而未传递需要 deleted.Here 是我的 URL
的资源 ID 时,我收到“405 方法不允许”http://localhost:8080/api/vendors/delete/1234/
理想情况下,我应该在 URL 末尾给出 ID,例如:
http://localhost:8080/api/vendors/delete/1234/{id}
我确信它应该是 405,但我的 QA 团队不这么认为。他们说它应该是 400。有人可以向我指出任何资源,这些资源清楚地指定了在这种情况下它应该是什么 HTTP 代码。
根据我的意见,404 Not Found 或 400 Bad Request 是一个不错的选择。 也请参考这个答案
对于你的主要问题,如果方法是
DELETE
并且路径/api/vendors/delete/1234/
对其他方法有效但不适用于DELETE
,那么405 Method Not Allowed
("A request method is not supported for the requested resource") 是正确的,因为那个路径上有一个 "resource" 不支持删除,例如它可能支持GET
检索供应商列表。如果那里没有资源,即方法无关紧要,那么
404 Not Found
("The requested resource could not be found") 将是正确的响应。如果方法是
DELETE
,而不是GET
、PUT
、POST
或任何其他方法,则您不需要.../delete/...
在路径中。如果您尝试删除供应商 1234,则路径应为
http://localhost:8080/api/vendor/1234
,方法应为DELETE
。操作处理程序应在声明中使用/api/vendor/{id}
。