当我尝试进行DELETE而没有传递需要删除的资源ID时,出现“ 405方法不允许”的情况。这是我的URL
http://localhost:8080/api/vendors/delete/1234/
理想情况下,我应该在URL的末尾给出ID,例如:
http://localhost:8080/api/vendors/delete/1234/{id}
我相信应该是405,但我的质量检查团队认为不是。他们说应该是400。有人可以向我指出任何明确指定此情况下HTTP代码的资源。
答案 0 :(得分:1)
对于您的主要问题,如果方法为DELETE
,并且路径/api/vendors/delete/1234/
对其他方法有效,但对DELETE
无效,则405 Method Not Allowed
(“请求的资源不支持请求方法”)是正确的,因为该路径上存在一个不支持删除的“资源”,例如它可能支持GET
检索供应商列表。
如果那里没有资源,即方法无关紧要,那么404 Not Found
(“找不到请求的资源”)将是正确的响应。
如果方法是DELETE
,而不是GET
,PUT
,POST
或其他任何方法,则不需要{{1} }。
如果要删除Vendor 1234,则路径应为.../delete/...
,方法应为http://localhost:8080/api/vendor/1234
。动作处理程序应在声明中使用DELETE
。
答案 1 :(得分:0)
根据我的意见,找不到404或400错误的请求是一个不错的选择。 请同时参考此答案 HTTP Status Codes