REST:根据RFC 2616 HTTP/1.1规范的正确响应状态?
问题描述:
我已经浏览了HTTP/1.1协议规范RFC-2616,我想了解在调用特定REST方法时应该返回哪个状态码。据我所研究的协议(链接),我试图解析REST方法,以正确的状态代码:REST:根据RFC 2616 HTTP/1.1规范的正确响应状态?
- GET
- 到的情况下,返回200 (ok)至少一个资源被发现。
- 我应该返回204(找不到)如果找不到任何东西(即返回空列表)?
- PUT
- 到如果资源被修改基于200 (ok) or 204 (not found)返回或不
- 而且返回501 (unimplemented)如果请求的格式不正确或不被理解。
- POST
- 与如果新reource已被添加到基于共同recommendation的生产地
- 返回201 (created)的差相同的像PUT方法,POST前人的精力用于创建一个新的资源,PUT修改现有的。如果我决定遵循这一建议,那么在尝试修改现有资源前,我应该返回什么?
POST api/v1/person/1
?
- PATCH
- 与差异同样喜欢PUT方法就像放的做法,但itmodifies资源不更换整个资源部分
- 没有关于在W3 PATCH REST方法字协议RFC-2616,应该像PUT一样对待它吗?
- DELETE
- 返回200 (ok)如果资源被删除,[204(未找到)]的情况下,没有现有的除去资源(ID未找到)。在REST实施的情况下是否复制GET响应principe?
是我的“表”正确的(特别是带引号?
报表?是正确的,只有GET应返回在体内的请求本身和方法的其余部分只是一个URI链接到经修正包含在标题中的资源(新增,修改..)
我的理解是否正确,确实存在另一个描述REST方法的官方正式推荐(或者我们“有义务”)遵循的源码吗?我很困惑广泛的来源给了我对这种真正冗长的RFC-2616协议的每种方法有一些不同的答案。
最好的办法是存在一个表格,简要清楚地描述所有这5种可能的返回状态,正文内容和标题的方法。
答
+0
也许值得注意的是:鉴于当前的HTTP/1.1规范被模块化为多个部分,RFC 7231“语义和内容”https://tools.ietf.org/html/rfc7231也废弃了RFC 2616,并且是特定的部分,其中现在定义了状态代码的语义 – sideshowbarker
尝试将状态码与方法对齐可能不是一个有用的想法。 – VoiceOfUnreason
https://www.iana.org/assignments/http-methods/http-methods.xhtml包含方法定义的链接。 –