实现RESTful API时,我们应该为用户提供适当的操作响应。
基于正确构建链接并使用适当的动词发送REST API的体系结构允许用户向API询问有关任何数据的任何请求。我应该向用户提供什么样的响应代码,当他要求为他要求的数据实现的方法时?
示例:
API允许用户通过postAction添加文章,但根本不允许删除文章。当用户向我的API发送REST DELETE请求时,我应该向用户提供什么响应? 404?
答案 0 :(得分:2)
如果是用户权限问题,403似乎最合适。 (禁止 - 你不允许这样做,但其他人可能会这样做)
如果 no-one 被允许执行DELETE
,但它是一个有效的URI,405。(方法不允许)
如果它是对不存在的资源的访问权限,但是对这些资源支持DELETE
,则然后 404是合适的。 (未找到)
如果不是其中一种情况(即用户不允许DELETE
,和他们提供的URI是针对实际不存在的资源那么你需要决定哪一条信息更重要。我可能会选择404。
答案 1 :(得分:0)
RESTfull服务中基本上有四种方法。 GET ,发布, PUT 和删除。
您可能正在使用 POST 服务添加文章。
当使用不同于预期的方法调用REST api时,API会自动返回 HTTP状态代码 405(不允许使用方法)
如果您允许此API也使用 DELETE 方法,那么任何人都可以使用 DELETE 方法调用。如果您想禁止用户删除该特定内容,则可以返回 403(禁止)响应代码。
答案 2 :(得分:0)
您需要回复响应代码405 Method Not Allowed。
状态代码列表:Wikipedia