HTTP API响应数据规范整理
概述
本文档为本人对长期开发API接口所整理的经验总结,如有不完善或不合理的地方,望各位多提意见。
文档目的为规范服务器端API接口,便于服务器端与客户端代码重用。服务器端和客户端可根据实际所定义规范编写序列化和反序列化工具,以便减少一些开发时间。
本文档为个人观点,仅供参考。
HTTP接口
Execute(CUD)
用于client向server发起的POST、PUT和DELETE请求
JSON
参考
{
"code": "value", //结果码,必需。客户端应首先根据此项结果进行相应处理。
"message": "value" //文本消息提示。
}
XML格式
参考
<?xml version="1.0" encoding="utf-8"?>
<result>
<code></code>
<message></message>
</result>
Query(R)
单项数据查询
JSON
参考
{
"code": "value", //响应结果码,必需;客户端可根据此结果判断数据查询是否正常
"datum": {
}
}
示例
{
"code": 1,
"datum": {
"id":3,
"name":"jennifer"
"age": 23,
"sex": "female"
}
}
Xml格式
参考
<?xml version="1.0" encoding="utf-8"?>
<result>
<code></code>
<datum>
<id></id>
<name></name>
<age></age>
<sex></sex>
</datum>
</result>
示例
<?xml version="1.0" encoding="utf-8"?>
<result>
<code>1</code>
<datum>
<id>3</id>
<name>jennifer</name>
<age>23</age>
<sex>female</sex>
</datum>
</result>
列表数据查询
Json格式
参考
{
"code": "value", //响应结果码,必需。
"data": [{ //数据列表,数组
},{
}]
}
示例
{
"code": 1,
"data": [{
"id":3,
"name":"jennifer"
"age": 23,
"sex": "female"
},{
"id":5,
"name":"lenbo"
"age": 21,
"sex": "male"
}]
}
Xml格式
参考
<?xml version="1.0" encoding="utf-8"?>
<result>
<code></code>
<data>
<datum>
</datum>
<datum>
</datum>
</data>
</result>
示例
<?xml version="1.0" encoding="utf-8"?>
<result>
<code>1</code>
<data>
<datum>
<id>5</id>
<name>lenbo</name>
<age>21</age>
<sex>male</sex>
</datum>
</data>
</result>
分页数据查询
Json格式
参考
{
"code": 1, //响应结果码,必需。
"page": { //分页参数,必需。
"totalpage": "value", //总页数
"count":"value", //每页记录条数
"curr": "value", //本页页码
"totalcount": "value" //总记录数
},
"data": [{ //列表数据,数组。
},{
},{
}]
}
示例
{
"code": 1,
"page": {
"totalpage": 20, //总页数
"count":10, //每页记录条数
"curr":1, //本页页码
"totalcount": 180 //总记录数
},
"data": [{
"id":3,
"name":"jennifer"
"age": 23,
"sex": "female"
},{
"id":5,
"name":"lenbo"
"age": 21,
"sex": "male"
}]
}
Xml格式
参考
<?xml version="1.0" encoding="utf-8"?>
<result>
<code></code>
<page>
<totalpage></totalpage>
<count></count>
<curr></curr>
<totalcount></totalcount>
</page>
<data>
<datum>
</datum>
<datum>
</datum>
</data>
</result>
示例
<?xml version="1.0" encoding="utf-8"?>
<result>
<code>1</code>
<page>
<totalpage>20</totalpage>
<count>10</count>
<curr>2</curr>
<totalcount>180</totalcount>
</page>
<data>
<datum>
<id>5</id>
<name>lenbo</name>
<age>21</age>
<sex>male</sex>
</datum>
<datum>
<id>2</id>
<name>jennifer</name>
<age>23</age>
<sex>female</sex>
</datum>
</data>
</result>
附录1:code对照表参考
仅供参考,API接口开发人员可根据实际情况自定义相应结果码或节点
200 ok - 成功状态,对应,GET,PUT,PATCH,DELETE.
500 faild - 失败状态
304 not modified - HTTP缓存有效。
400 bad request - 请求格式错误。可以标识参数错误或参数缺失
401 unauthorized - 未授权。
403 forbidden - 鉴权成功,但是该用户没有权限。
404 not found - 请求的资源或接口不存在
405 method not allowed - 该http方法不被允许。
410 gone - 这个url对应的资源现在不可用。
415 unsupported media type - 请求类型错误。
422 unprocessable entity - 校验错误时用。
429 too many request - 请求过多。
HTTP API响应数据规范整理的更多相关文章
- 使用 ASP.NET Core MVC 创建 Web API——响应数据的内容协商(七)
使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 使 ...
- 【ASP.NET Core】设置 Web API 响应数据的格式——FormatFilter特性篇
在上一篇烂文中老周已向各位介绍过 Produces 特性的使用,本文老周将介绍另一个特性类:FormatFilterAttribute. 这个特性算得上是筛选器的马甲,除了从 Attribute 类派 ...
- jQuery-1.9.1源码分析系列(十六)ajax——响应数据处理和api整理
ajax在得到请求响应后主要会做两个处理:获取响应数据和使用类型转化器转化数据 a.获取响应数据 获取响应数据是调用ajaxHandleResponses函数来处理. ajaxHandleRespon ...
- ASP.NET Web API 记录请求响应数据到日志的一个方法
原文:http://blog.bossma.cn/dotnet/asp-net-web-api-log-request-response/ ASP.NET Web API 记录请求响应数据到日志的一个 ...
- 或许是 WebGIS 下一代的数据规范 - OGC API 系列
目录 1. 前言 1.1. 经典的 OGC 标准回顾 1.2. 共同特点与时代变化 1.3. 免责声明 2. 什么是 OGC API 2.1. OGC API 是一个开放.动态的规范族 2.2. OG ...
- Elasticsearch Java API 很全的整理
Elasticsearch 的API 分为 REST Client API(http请求形式)以及 transportClient API两种.相比来说transportClient API效率更高, ...
- API 接口开发规范
整体规范建议采用RESTful 方式来实施. 协议 API与用户的通信协议,总是使用HTTPs协议,确保交互数据的传输安全. 域名 应该尽量将API部署在专用域名之下.https://api.exam ...
- i3s 一种开源的三维地理数据规范 简单解读
i3s,esri主推到ogc的一种三维开源GIS数据标准. 版权声明:原创.博客园/B站/小专栏/知乎/CSDN @秋意正寒 转载请标注原地址并声明转载: https://www.cnblogs.co ...
- 代码规范、API设计等规范
一份整理好了的规范文档,node后端开发用到 "规范是个好东西..." - 鲁迅 以下规范仅作为参考 1.代码规范 命名 尽量保证命名更加语义化 文件命名采用下划线命名法 // g ...
随机推荐
- (原)一句mpAudioPolicy->get_input引发的血案
今天分析Android的Audio系统时,对mpAudioPolicy->get_input进行了分析,没想到这一句话的背后如此复杂,简直是一句话引出的血案啊! 分析结果如下:(关于排版:各个变 ...
- Android Studio 出现 Gradle's dependency cache may be corrupt 解决方案
将 .\项目地址\gradle\wrapper\gradle-wrapper.properties 文件中的 gradle版本 与 正常的版本 修改一致即可.
- 使用API函数EnumWindows()枚举顶层窗口
http://simpleease.blog.163.com/blog/static/1596085820052770290/ 要枚举Windows当前所有打开的顶层窗口,可使用Windows A ...
- Material Design系列第五篇——Working with Drawables
Working with Drawables This lesson teaches you to Tint Drawable Resources Extract Prominent Colors f ...
- css案例 - 评分效果的星星✨外衣
纳尼?什么星星外衣?好,直接上图比较能说清楚: 仔细看会发现规律:可以根据百分比/分值动态改变高亮星星的个数. 分步骤图: 这种效果,如果遇到一分一个星,没有半星(或者有也可以,直接加一个半星的类名) ...
- Android SAX、DOM、Pull解析xml文件剖析与案例讲解
XML介绍 XML(Extensible Markup Language) 即可扩展标记语言,与HTML一样,都是SGML(Standard Generalized Markup Language,标 ...
- [PHP] Compile an extension on Windows
https://wiki.php.net/internals/windows/stepbystepbuildhttp://blog.benoitblanchon.fr/build-php-extens ...
- Panel结构
参考weui的Panel结构 核心:定位,补充:对容器设置font-size:0,消除img下多出的3px,防止居中出现偏差. <!DOCTYPE html> <html lang= ...
- sencha touch Container 监听超链接插件
有时候内容直接从后台获取,有可能包含超链接,打包成应用之后,点击会造成不好的后果,这样做能够用外部浏览器打开.需要Cordova支持 监听插件代码: /* *监听a标签,用外部浏览器打开链接 */ E ...
- 使用私钥.pem和SecureCRT登陆linux系统
将密钥上传到一台自己的linux主机,下面举例文件名为 key.pemchmod 600 key.pem改写密钥格式为 OpenSSH,如果询问passphrase可以留空(直接回车)ssh-keyg ...