未找到vs通过Restful服务删除资源时不允许的方法

时间:2013-09-20 10:51:30

标签: web-services rest

我刚开始编写宁静的网络服务,我对正确使用响应代码404(未找到)和405(方法不允许)有疑问。

在使用网络服务网址systemuser/delete/[user-id-here]时,如果用户已被删除(因此不存在),我认为我应该返回404 Not Found状态代码作为资源否更长的存在?或者我应该返回405 Method not allowed,因为地址有效,但资源不再可用于删除,因此无法执行操作?

非常感谢

1 个答案:

答案 0 :(得分:2)

这显然是资源未找到 - 404 error response。当您提出DELETE+/user/{id} -请求时,如果ID不存在,请throw HTTP 404 (also read HTTP specs) 如果没有为此资源指定删除操作,则响应将为405,即不允许使用该方法。

还有一个建议 - 不要将动词添加到网址中,而是添加/user/delete/{id} just make it /user/{id} + HTTP DELETE.