云原生(08):RESTful API中的HTTP方法和状态码总结

Posted 01WORLD

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生(08):RESTful API中的HTTP方法和状态码总结相关的知识,希望对你有一定的参考价值。


今天总结一下RESTful API中常用的HTTP方法和状态码。

方法

RESTful中常见的方法主要是以下5种,其中PATCH又用的比较少。在这POST和PUT方法中,请注意符合幂等性的方法是PUT,POST方法不一定保证幂等性。

GET

CRUD:Read

说明:获取某个对象

返回码:

  • 200 - 获取成功

  • 404 - 未找到

POST

CRUD:Create

说明:创建某个对象

返回码:

  • 201 - 成功创建


PUT

CRUD:Update/Replace

说明:更新某个对象

返回码:

  • 405 - 方法不允许

  • 200 - 更新成功

  • 204 - 未作出更新

  • 404 - 不存在

PATCH

CRUD:Update

说明:更新某个对象的某个属性

返回码:

  • 405 - 方法不允许

  • 405 - 方法不允许

  • 200 - 更新成功

  • 204 - 未作出更新

  • 404 - 不存在

DELETE

CRUD:Delete

说明:删除某个对象

返回码:

  • 405 - 方法不允许

  • 200 - 成功

  • 404 - 未找到


通用返回码

上文仅仅列出了针对某个操作的返回码,在实际中,还会用到其他返回码,尤其是以下几个:

401

未授权。对客户端如果验证不通过,则需要返回401状态码,让客户端根据该码进行必要的处理,譬如跳转到验证页面。

403

该代码说明该资源禁止当前用户访问。

500

服务器错误。该代码也可以作为其他代码不适用的场景下的返回码。

503

服务不可用。一般API不应该返回该代码,它更多用于Web服务器的响应。

错误码 vs 代码200

如果程序不能正常返回200代码,按照以上方法和代码的意义,我们应当优选错误码,并在响应的正文中显示错误信息或者提示信息。但是请注意,常用的编程语言对非20X的代码都是以触发异常的方式提醒的,这就需要try……catch……来捕获异常。请看下面代码的演示:

Status: 200
Response JSON: {errno: 0, errmsg: 'susccess'}
Status: 500
Response JSON: {errno: 1, errmsg: 'Failed to update'}
Status: 200
Response JSON: {errno: 1, errmsg: 'Failed to update'}

大家可以根据各自的习惯去选择。但一点确定风格,后续的API开发必须遵照该风格。


接下来向大家推荐《云原生架构进阶实战》这本书。该书是我本人撰写的,历时数月,多次修改,在机械工业出版社出版。该书聚焦于云原生架构的理念和基础知识,并通过实战向大家讲解和展示云原生架构的魅力。该书第一遍需要几分钟即可读完,第二遍需要两到三天读完,第三遍以后,可以作为工具书来翻阅,之后可以品位其中的思想精髓。值得您购买。点击“阅读原文”即可进入网上商城的购买页面。






以上是关于云原生(08):RESTful API中的HTTP方法和状态码总结的主要内容,如果未能解决你的问题,请参考以下文章

RESTful Web API中的Http协议语义

RESTful Web API中的Http协议语义

RESTful Web API中的Http协议语义

gRPC,云原生应用开发的水煤电

区块链中的RESTFUL链码调用API原理详解

使用 Gorilla Mux 和 CockroachDB 编写可维护 RESTful API