首页 > 解决方案 > 405 方法不允许删除

问题描述

当我尝试 DELETE 而不传递需要删除的资源 ID 时,我得到一个“405 Method Not Allowed”。这是我的 URL

http://localhost:8080/api/vendors/delete/1234/

理想情况下,我应该在 URL 末尾给出 ID,例如:

http://localhost:8080/api/vendors/delete/1234/{id}

我确信它应该是 405,但我的 QA 团队不这么认为。他们说它应该是 400。有人可以向我指出任何明确指定在这种情况下应该是什么 HTTP 代码的资源。

标签: javahttppostmanhttp-delete

解决方案


  1. 对于您的主要问题,如果方法DELETE并且路径/api/vendors/delete/1234/对其他方法有效但对 无效DELETE,那么405 Method Not Allowed(“请求的资源不支持请求方法”)是正确的,因为该路径上有一个“资源”不支持删除,例如它可能支持GET检索供应商列表。

    如果那里没有资源,即方法无关紧要,那么404 Not Found("The requested resource could not be found") 将是正确的响应。

  2. 如果方法是DELETE, not GET, PUT,POST或任何其他方法,则路径中不需要.../delete/...

  3. 如果您尝试删除供应商 1234,则路径应为http://localhost:8080/api/vendor/1234,方法应为DELETE. 动作处理程序应/api/vendor/{id}在声明中使用。


推荐阅读