繁体   English   中英

REST:根据 RFC 2616 HTTP/1.1 规范正确响应状态?

[英]REST: correct response status according RFC 2616 HTTP/1.1 spec?

我浏览了RFC-2616 中的 HTTP/1.1 协议规范,我试图了解调用特定 REST 方法时应返回哪个状态代码。 就我研究过的协议(链接)而言,我尝试将 REST 方法解析为正确的状态代码:

  • 获取
    • 如果找到至少一个资源,则返回200(确定)
    • 如果未找到任何内容(即返回空列表),我应该返回204(未找到)吗?
  • 放置
  • 邮政
    • 与 PUT 方法相同,但如果新资源已添加到原点,则返回201(创建)
    • 根据共同 推荐,POST 应该用于创建新资源,PUT 用于修改现有资源。 如果我决定遵循此建议,如果尝试修改现有资源,我应该返回什么。 POST api/v1/person/1 ?
  • 补丁
    • 与 PUT 方法相同,不同之处在于它不像 PUT 那样替换整个资源,而是部分修改资源
    • 在 W3 协议RFC-2616 中没有关于 PATCH REST 方法的消息,是否应该像 PUT 一样对待它?
  • 删除
    • 如果资源被删除,则返回200(ok),如果没有要删除的资源(id 未找到),则返回 [204(未找到)]。 在 REST 实现的情况下,它是否复制 GET 响应原则?

我的“表”是否正确(尤其是带引号的语句?包含在标题中?

我的理解是否正确,并且确实存在另一个正式描述 REST 方法的来源,建议(或我们“有义务”)遵循该方法吗? 我对各种来源给我的每种方法以及这个非常冗长的RFC-2616协议有点不同的答案感到困惑。

最好是存在一个表格,简要而清楚地描述所有这 5 种方法,以及返回状态、正文内容和标题的可能性。

来自RFC 7230

此 HTTP/1.1 规范废弃了 RFC 2616

因此,任何为状态代码制定模式的尝试都应该从那里开始

我的“桌子”正确吗

不是真的; 看看停止让它变得困难中的 Kropat(非官方)流程图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM