概述

本文档为本人对长期开发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响应数据规范整理的更多相关文章

  1. 使用 ASP.NET Core MVC 创建 Web API——响应数据的内容协商(七)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 使 ...

  2. 【ASP.NET Core】设置 Web API 响应数据的格式——FormatFilter特性篇

    在上一篇烂文中老周已向各位介绍过 Produces 特性的使用,本文老周将介绍另一个特性类:FormatFilterAttribute. 这个特性算得上是筛选器的马甲,除了从 Attribute 类派 ...

  3. jQuery-1.9.1源码分析系列(十六)ajax——响应数据处理和api整理

    ajax在得到请求响应后主要会做两个处理:获取响应数据和使用类型转化器转化数据 a.获取响应数据 获取响应数据是调用ajaxHandleResponses函数来处理. ajaxHandleRespon ...

  4. ASP.NET Web API 记录请求响应数据到日志的一个方法

    原文:http://blog.bossma.cn/dotnet/asp-net-web-api-log-request-response/ ASP.NET Web API 记录请求响应数据到日志的一个 ...

  5. 或许是 WebGIS 下一代的数据规范 - OGC API 系列

    目录 1. 前言 1.1. 经典的 OGC 标准回顾 1.2. 共同特点与时代变化 1.3. 免责声明 2. 什么是 OGC API 2.1. OGC API 是一个开放.动态的规范族 2.2. OG ...

  6. Elasticsearch Java API 很全的整理

    Elasticsearch 的API 分为 REST Client API(http请求形式)以及 transportClient API两种.相比来说transportClient API效率更高, ...

  7. API 接口开发规范

    整体规范建议采用RESTful 方式来实施. 协议 API与用户的通信协议,总是使用HTTPs协议,确保交互数据的传输安全. 域名 应该尽量将API部署在专用域名之下.https://api.exam ...

  8. i3s 一种开源的三维地理数据规范 简单解读

    i3s,esri主推到ogc的一种三维开源GIS数据标准. 版权声明:原创.博客园/B站/小专栏/知乎/CSDN @秋意正寒 转载请标注原地址并声明转载: https://www.cnblogs.co ...

  9. 代码规范、API设计等规范

    一份整理好了的规范文档,node后端开发用到 "规范是个好东西..." - 鲁迅 以下规范仅作为参考 1.代码规范 命名 尽量保证命名更加语义化 文件命名采用下划线命名法 // g ...

随机推荐

  1. 【Java并发编程四】关卡

    一.什么是关卡? 关卡类似于闭锁,它们都能阻塞一组线程,直到某些事件发生. 关卡和闭锁关键的不同在于,所有线程必须同时到达关卡点,才能继续处理.闭锁等待的是事件,关卡等待的是其他线程. 二.Cycli ...

  2. struts.xml文件中配置tiles.xml

    Apache Tiles是一个JavaEE应用的页面布局框架.Tiles框架提供了一种模板机制,可以为某一类页面定义一个通用的模板,该模板定义了页面的整体布局.布局由可以复用的多个块组成,每个页面可以 ...

  3. Ubuntu apt-get彻底卸载软件包

    https://blog.csdn.net/get_set/article/details/51276609 如果你关注搜索到这篇文章,那么我可以合理怀疑你被apt-get的几个卸载命令有点搞晕了. ...

  4. php-fpm配置文件

    php-fpm配置文件 1.php-5.2的php-fpm <?xml version="1.0" ?> <configuration> <secti ...

  5. 【Laravel5】 定制错误页面

    laravel5   所有异常错误都由类   App\Exceptions\Handler    处理,该类包含两个方法:   report   和   render . 这里我们只看 render  ...

  6. Android 逆向工具

    逆向分析工具 https://github.com/skylot/jadx/ https://github.com/google/android-classyshark https://github. ...

  7. Ubuntu Eclipse配置Python开发环境

    一 在Eclipse中安装pydev插件 启动Eclipse, 点击Help->Install New Software... 在弹出的对话框中,点Add 按钮. Name中填:Pydev Lo ...

  8. webstorm启动报错

    环境: 在重装完系统的电脑上第一次安装webstorm, 问题: 解决”failed to load jvm dll“的报错问题: 解决方案: 安装Microsoft Visual C++ 2010 ...

  9. 题目1042:Coincidence(最长公共子序列 dp题目)

    题目链接:http://ac.jobdu.com/problem.php?pid=1042 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  10. $@和 $*-linux_Shell

    =================1.问题======= 在使用$@和 $*的时候有时候会混淆. ================2.实践出真知===== 分别用三种参数设置: "a b c ...