概述

本文档为本人对长期开发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. UVALive - 3507 Keep the Customer Satisfied

    题意:收到n个订单,每个订单有q,d分别代表做这个的时间,和最晚的完成时间,问你最多能接受几个订单 思路:贪心,我们显然要按最早的完成时间排序,那么接下来,我们用(6,8)和(4,9)做为例子,按照我 ...

  2. Excel 公式集

    1.  Excel 公式集 按身份证计算年龄 按日计算的 (2018/12/20)(身份证 C2): =TRUNC((DAYS360(CONCATENATE(MID(C2,7,4),"/&q ...

  3. 【Spring Boot&&Spring Cloud系列】Spring Boot项目集成Swagger UI

    前言 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集 ...

  4. Win 7打开任务管理器的几种方法

    1. 按住Ctrl和Alt键和Delete键 2. 快速启动栏打开win7任务管理器 3. Ctrl键+Shift键+Esc键的组合键 4. 桌面新建一个文本文档也叫记事本,打开,输入“C:\Wind ...

  5. Android.mk (1) 函数

    https://www.jianshu.com/p/46224d15fc5f 从函数说起 大家都习惯看从头,从构建目标讲起的,导致每篇文档熟的都是前面的部分.很多教程也都是想办法能够观其大略,从整体上 ...

  6. 2018 青岛ICPC区域赛E ZOJ 4062 Plants vs. Zombie(二分答案)

    Plants vs. Zombies Time Limit: 2 Seconds      Memory Limit: 65536 KB BaoBao and DreamGrid are playin ...

  7. async 与await

    一. async 与await (https://segmentfault.com/a/1190000007535316) 1.async 是“异步”的简写,而 await 可以认为是 async w ...

  8. 常用AT指令集 (转)

    常 用 AT 命 令 手 册 .常用操作 1.1 AT 命令解释:检测 Module 与串口是否连通,能否接收 AT 命令: 命令格式:AT<CR> 命令返回:OK (与串口通信正常) ( ...

  9. Centos 7网络文件系统nfs服务的安装与配置

    实验环境>>>>>>>>> nfs服务端:(nfs-server)192.168.100.2 nfs客户端:(nfs-client)192.168 ...

  10. 关于linux例行任务crontab的使用

    Linux 例行性任务(也叫周期性任务)命令使用:crontab1.crontab -l   查看当前用户的任务2.crontab -e  编辑(设置)当前用户的任务,执行行不用重启crond服务.3 ...