java - 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 代码的资源。
解决方案
对于您的主要问题,如果方法是
DELETE
并且路径/api/vendors/delete/1234/
对其他方法有效但对 无效DELETE
,那么405 Method Not Allowed
(“请求的资源不支持请求方法”)是正确的,因为该路径上有一个“资源”不支持删除,例如它可能支持GET
检索供应商列表。如果那里没有资源,即方法无关紧要,那么
404 Not Found
("The requested resource could not be found") 将是正确的响应。如果方法是
DELETE
, notGET
,PUT
,POST
或任何其他方法,则路径中不需要.../delete/...
。如果您尝试删除供应商 1234,则路径应为
http://localhost:8080/api/vendor/1234
,方法应为DELETE
. 动作处理程序应/api/vendor/{id}
在声明中使用。
推荐阅读
- java - spring-boot 中的@ControllerAdvice 注释是什么以及我们为什么使用它以及何时使用它?
- mongodb - 如何像mongoose一样返回mongodb中的引用实体而不仅仅是Id?
- regex - 为什么 Regexp 有超时方法,而理论上不应该?
- c# - 如何从正则表达式中提取
- flutter - 如何重置计步器颤振
- yaml - 在 cloudformation 模板中不同资源类型之间共享标签
- netlogo - 好乌龟和坏乌龟:如何更新他们的行为?
- node.js - 如何使用带有 where 子句的 json 对象?
- php - 在 HTML URL 中调用 PHP 字符串函数。给出未定义的偏移量 0
- javascript - 有没有办法将数据从 Electron 传递到 web 视图中的 URL?