概述

本文档为本人对长期开发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. HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP错误解决方法

    在树莓派上运行在windows上正确的程序,  报错: HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP OpenCV Error: Assertion failed (s ...

  2. JAVA知多少

    读<java解惑>感觉有意思的就记录一下. 1.判断奇数还是偶数 public boolean isOdd(int i){ return i%2==1; }; 这样子看起来很对,但是考虑到 ...

  3. ubuntu apt 代理设置

    可以通过三种方法为apt-get设置http代理方法一这是一种临时的手段,如果您仅仅是暂时需要通过http代理使用apt-get,您可以使用这种方式.在使用apt-get之前,在终端中输入以下命令(根 ...

  4. JavaScript 浮点数陷阱及解法

    众所周知,JavaScript 浮点数运算时经常遇到会 0.000000001 和 0.999999999 这样奇怪的结果,如 0.1+0.2=0.30000000000000004.1-0.9=0. ...

  5. python之Tkinter控件学习

    转载自  http://www.cnblogs.com/kaituorensheng/p/3287652.html#_label0 阅读目录 1. 产品介绍 2. 设计规划 3. 相关知识 4. 源码 ...

  6. python tkinter Listbox用法

    python tkinter组件的Listbox的用法,见下面代码的演示: from tkinter import * root=Tk() v=StringVar() #Listbox与变量绑定' l ...

  7. WPS 2019 去除自动升级 和 广告、及优化的点

    搜狗输入法 里面的快捷键会影响wps的快捷键功能,需要关掉"搜狗输入法"里面的快捷键 1. 2.去除自动升级功能 3.去除 广告 WPS 2019 流程图(断网): 思维导图: 流 ...

  8. LeetCode 48 Rotate Image(2D图像旋转问题)

    题目链接: https://leetcode.com/problems/rotate-image/?tab=Description   Problem:给定一个n*n的二维图片,将这个二维图片按照顺时 ...

  9. ab压测工具

    在学习ab工具之前,我们需了解几个关于压力测试的概念 吞吐率(Requests per second)概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求 ...

  10. Nginx写IO占用高故障处理

    文章来源:<https://www.centos.bz/2015/04/handle-nginx-write-io-problem/> 故障现象 突然收到一台服务器负载过高告警,紧接着网站 ...