REST:根据 RFC 2616 HTTP/1.1 规范正确的响应状态?
REST: correct response status according RFC 2616 HTTP/1.1 spec?
我浏览了 RFC-2616 的 HTTP/1.1 协议规范,我试图了解调用特定 REST 方法时应 return 编辑哪个状态代码。据我研究协议 (links),我尝试将 REST 方法解析为正确的状态代码:
- 得到
- 到 return 200 (ok) 如果至少找到一个资源。
- 我应该 return 204(未找到) 如果没有找到(即空列表是 returned)?
- 放
- 到return200 (ok) or 204 (not found)根据资源是否修改
- 此外 return 501 (unimplemented) 如果请求格式不正确或无法理解。
- POST
- 与 PUT 方法相同,不同之处在于 201 (created) 是 return 如果新资源已添加到 orign
- 基于常见的 recommendation,POST 应该用于创建新资源,PUT 用于修改现有资源。如果我决定遵循此建议,我应该 return 以防尝试修改现有资源 ex。
POST api/v1/person/1
?
- 补丁
- 与 PUT 方法相同,区别在于它不像 PUT 那样替换整个资源,而是部分修改资源
- W3 协议中没有关于 PATCH REST 方法的字样RFC-2616,它应该像 PUT 一样对待吗?
- 删除
- 到 return 200 (ok) 如果资源已删除,[204(未找到)] 如果不存在要删除的资源(未找到 ID)。在 REST 实施的情况下,它是否复制 GET 响应原则?
我的"table"是否正确(尤其是带引号?
的语句?只有GET应该return请求本身在body和其余方法只是一个 URI link 到 header?
中包含的修改后的资源(新增、修改..)
我的理解是否正确,是否存在另一个官方推荐(或者我们"obligated")遵循的描述 REST 方法的来源?我对各种来源感到很困惑,这些来源给我提供了对每种方法以及这个非常冗长的 RFC-2616 协议的不同答案。
最好的是存在一个 table 简要而清楚地描述所有这 5 种方法的可能性,状态为 returned,body 内容和 headers .
来自RFC 7230
This HTTP/1.1 specification obsoletes RFC 2616
因此,任何试图找出状态代码模式的尝试都应该从那里开始
Is my "table" correct
不是真的;在 Stop Making it Hard.
中查看 Kropat 的(非官方)流程图
我浏览了 RFC-2616 的 HTTP/1.1 协议规范,我试图了解调用特定 REST 方法时应 return 编辑哪个状态代码。据我研究协议 (links),我尝试将 REST 方法解析为正确的状态代码:
- 得到
- 到 return 200 (ok) 如果至少找到一个资源。
- 我应该 return 204(未找到) 如果没有找到(即空列表是 returned)?
- 放
- 到return200 (ok) or 204 (not found)根据资源是否修改
- 此外 return 501 (unimplemented) 如果请求格式不正确或无法理解。
- POST
- 与 PUT 方法相同,不同之处在于 201 (created) 是 return 如果新资源已添加到 orign
- 基于常见的 recommendation,POST 应该用于创建新资源,PUT 用于修改现有资源。如果我决定遵循此建议,我应该 return 以防尝试修改现有资源 ex。
POST api/v1/person/1
?
- 补丁
- 与 PUT 方法相同,区别在于它不像 PUT 那样替换整个资源,而是部分修改资源
- W3 协议中没有关于 PATCH REST 方法的字样RFC-2616,它应该像 PUT 一样对待吗?
- 删除
- 到 return 200 (ok) 如果资源已删除,[204(未找到)] 如果不存在要删除的资源(未找到 ID)。在 REST 实施的情况下,它是否复制 GET 响应原则?
我的"table"是否正确(尤其是带引号?
的语句?只有GET应该return请求本身在body和其余方法只是一个 URI link 到 header?
我的理解是否正确,是否存在另一个官方推荐(或者我们"obligated")遵循的描述 REST 方法的来源?我对各种来源感到很困惑,这些来源给我提供了对每种方法以及这个非常冗长的 RFC-2616 协议的不同答案。
最好的是存在一个 table 简要而清楚地描述所有这 5 种方法的可能性,状态为 returned,body 内容和 headers .
来自RFC 7230
This HTTP/1.1 specification obsoletes RFC 2616
因此,任何试图找出状态代码模式的尝试都应该从那里开始
Is my "table" correct
不是真的;在 Stop Making it Hard.
中查看 Kropat 的(非官方)流程图