首页 > 其他分享 >API 接口规范

API 接口规范

时间:2023-04-27 16:47:28浏览次数:50  
标签:API https 规范 接口 api RAP data

[API 接口规范 - BNDong - 博客园](https://www.cnblogs.com/bndong/p/6139598.html)
整体规范建议采用RESTful 方式来实施。

协议

API 与客户端通讯协议主要包含 http 和 https,建议使用 https 确保交互数据的传输安全。

域名

应该尽量将API部署在专用域名之下。

Go
https://api.example.com

如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。

Go
https://example.org/api/

api版本控制

应该将API的版本号放入URL。

CSS
https://api.example.com/v{n}/

另一种做法是,将版本号放在HTTP头信息中,但不如放入URL方便和直观。Github采用这种做法。

采用多版本并存,增量发布的方式。

  • v{n}: n代表版本号,分为整形和浮点型

  • 整型版本号:大功能版本发布形式;具有当前版本状态下的所有API接口 。例如:v1、v2

  • 浮点型版本号:为小版本号,只具备补充api的功能,其他api都默认调用对应大版本号的api。例如:v1.1、 v2.2

API 路径规则

路径又称"终点"(endpoint),表示API的具体网址。

在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。

举例来说,有一个API提供动物园(zoo)的信息,还包括各种动物和雇员的信息,则它的路径应该设计成下面这样。

Go
https://api.example.com/v1/products

https://api.example.com/v1/users

https://api.example.com/v1/employees

HTTP请求方式

对于资源的具体操作类型,由HTTP动词表示。

常用的HTTP动词有下面四个(括号里是对应的SQL命令)。

  • GET(SELECT):从服务器取出资源(一项或多项)。

  • POST(CREATE):在服务器新建一个资源。

  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。

  • DELETE(DELETE):从服务器删除资源。

下面是一些例子。

1)GET /product:列出所有商品

2)POST /product:新建一个商品

3)GET /product/ID:获取某个指定商品的信息

4)PUT /product/ID:更新某个指定商品的信息

5)DELETE /product/ID:删除某个商品

6)GET /product/ID/purchase :列出某个指定商品的所有投资者

7)get /product/ID/purchase/ID:获取某个指定商品的指定投资者信息

过滤信息

如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。

下面是一些常见的参数。

1)?limit=10:指定返回记录的数量

2)?offset=10:指定返回记录的开始位置。

3)?page=2&per_page=100:指定第几页,以及每页的记录数。

4)?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。

5)?producy_type=1:指定筛选条件

API 传入参数

传入参数分为4种类型:

地址栏参数

  • restful地址栏参数 /api/v1/product/122。122为产品编号,获取产品为122的信息

  • get方式的查询字串 见过滤信息小节

请求body数据

  • cookie

  • request header

  • cookie和header 一般都是用于OAuth认证的2种途径

返回数据

只要api接口成功接到请求,就不能返回200以外的HTTP状态。

为了保障前后端的数据交互的顺畅,建议规范数据的返回,并采用固定的数据格式封装。

接口返回模板:

Less
{
    status:0,
    data:{}||[],
    msg:’’
}

status 接口的执行的状态

=0 表示成功

<0 表示有异常

Data 接口的主数据

可以根据实际返回数组或JSON对象

Msg 信息

当status!=0 都应该有错误信息

非Restful Api的需求

由于实际业务开展过程中,可能会出现各种的api不是简单的restful 规范能实现的,因此,需要有一些api突破restful规范原则。特别是移动互联网的api设计,更需要有一些特定的api来优化数据请求的交互。

页面级的api

把当前页面中需要用到的所有数据通过一个接口一次性返回全部数据

举例

api/v1/get-home-data 返回首页用到的所有数据

这类API有一个非常不好的地址,只要业务需求变动,这个api就需要跟着变更。

自定义组合api

把当前用户需要在第一时间内容加载的多个接口合并成一个请求发送到服务端,服务端根据请求内容,一次性把所有数据合并返回,相比于页面级api,具备更高的灵活性,同时又能很容易的实现页面级的api功能。

规范

地址:api/v1/batApi

传入参数:

  Bash
data:[
    {url:'api1',type:'get',data:{...}},
    {url:'api2',type:'get',data:{...}},
    {url:'api3',type:'get',data:{...}},
    {url:'api4',type:'get',data:{...}}
]
 

返回数据

  Lua
{    status:0,    msg:'',
    data:[
        {status:0,msg:'',data:[]},
        {status:-1,msg:'',data:{}},
        {status:1,msg:'',data:{}},
        {status:0,msg:'',data:[]},
    ]
}
 

Api共建平台

RAP是一个GUI的WEB接口管理工具。在RAP中,您可定义接口的URL、请求&响应细节格式等等。通过分析这些数据,RAP提供MOCK服务、测试服务等自动化工具。RAP同时提供大量企业级功能,帮助企业和团队高效的工作。

什么是RAP?

在前后端分离的开发模式下,我们通常需要定义一份接口文档来规范接口的具体信息。如一个请求的地址、有几个参数、参数名称及类型含义等等。RAP 首先方便团队录入、查看和管理这些接口文档,并通过分析结构化的文档数据,重复利用并生成自测数据、提供自测控制台等等... 大幅度提升开发效率。

RAP的特色

强大的GUI工具 给力的用户体验,你将会爱上使用RAP来管理您的API文档。

完善的MOCK服务 文档定义好的瞬间,所有接口已经准备就绪。有了MockJS,无论您的业务模型有多复杂,它都能很好的满足。

庞大的用户群 RAP在阿里巴巴有200多个大型项目在使用,也有许多著名的公司、开源人士在使用。RAP跟随这些业务的成行而成长,专注细节,把握质量,经得住考验。

免费 + 专业的技术支持 RAP是免费的,而且你的技术咨询都将在24小时内得到答复。大多数情况,在1小时内会得到答复。

RAP是一个可视化接口管理工具 通过分析接口结构,动态生成模拟数据,校验真实接口正确性, 围绕接口定义,通过一系列自动化工具提升我们的协作效率。我们的口号:提高效率,回家吃晚饭!

 

  • 原文作者: mishe
  • 原文链接: http://mp.weixin.qq.com/s/OhN5yysTkfScsWJB2Y2lrQ
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐】一下。

标签:API,https,规范,接口,api,RAP,data
From: https://www.cnblogs.com/ministep/p/17359332.html

相关文章

  • ansible推送文件到目标主机时报错 UNREACHABLE! | Permission denied (publickey,gssa
    问题现象:[root@linlin]#ansibleall-mcopy-a'src=/etc/ansible/lin/test.txtdest=/home/'192.168.12.203|UNREACHABLE!=>{"changed":false,"msg":"Failedtoconnecttothehostviassh:[email protected]:Pe......
  • lazada按关键字搜索商品API接口
    ​lazada按关键字搜索商品API接口,在lazada上搜索产品,如果只需要搜索单个产品的话,那么直接在搜索框输入“关键字”即可,如果需要多个产品,那么则需要进行关键字扩展。lazada按关键字搜索商品API接口分为两部分:1.查询列表部分:在列表部分输入“关键字”,即可查询到对应的商品列表;2......
  • 通过NG做用户登录验证接口返回的返回体做登录接口判断
    ng获取响应体的json里面的字段需要安装第三方模块ngx_devel_kit的ngx_http_set_misc_module的set_json_var指令,form-input-nginx-modulelocation/api{proxy_passhttp://backend;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;pro......
  • 从历史天气预报 API 看气象大数据的商业价值
    引言近年来,随着气象观测技术的不断提升和气象大数据的快速发展,越来越多的企业开始将气象数据应用于商业领域。其中,历史天气预报API作为一种可获取历史气象数据的接口,具有广泛的商业应用价值。本文将从历史天气预报API的商业应用角度出发,探讨气象大数据在商业领域中的价值和......
  • 微信网页静默授权(snsapi_base与snsapi_userinfo区别)
    1、区别:有无授权完整服务弹框2、业务:有的网页只需要用户openid进行绑定,所以不需要弹框授权完整服务,用户会觉得整体体验不好。3、snsapi_base:scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。注:静默的另一种:对于已关注公众号的用户,......
  • [中] API开发中的种类、工具及最佳实践指南
    引言1.1.何为API?1.2.API在现代软件开发中的重要性API开发类型2.1.RESTfulAPIs2.2.GraphQLAPIs2.3.gRPCAPIs2.4.SOAPAPIs2.5.WebSockets和Real-timeAPIs2.6.API类型中的比较API开发工具3.1.API设计工具3.1.1.OpenAPI规范(Swagger)3.......
  • API数据接口该怎么对接
    随着互联网和移动互联网的发展,API(ApplicationProgrammingInterface)接口的作用越来越重要。API接口将各种平台相互连接,使得不同系统的信息可以互相获取和使用,大大提高了系统的互操作性和开发效率。本文将介绍如何对接API数据接口,以及注意事项和技巧。获取API接口首先需要找到需要......
  • API淘宝数据接口
    如果你想在自己的应用中使用淘宝的数据,那么对接淘宝数据接口是必不可少的一步。本文将介绍如何对接API淘宝数据接口,以便你能够顺利获取和使用淘宝的数据。步骤一:获取AppKey和AppSecret首先,在淘宝开放平台申请API接口之前,需要先注册为淘宝开发者并创建应用。创建应用后,你将得到一......
  • 关于数据库规范化处理
    确定关系模式及其属性:首先需要分析题目中给出的关系模式,确定其包含的属性及其依赖关系。需要注意的是,题目中可能给出的不仅是实体和属性,还可能包含关系、主码、外码等信息,需要仔细辨别。进行函数依赖分析:根据给出的依赖关系,进行函数依赖的分析,确定其范式级别。可以使用Armstr......
  • 借助尾号限行 API 实现限行规则应用的设计思路分析
    引言尾号限行是指根据车牌号的末尾数字,规定某些时段内不能在特定区域行驶,这是城市交通管理的一种措施。尾号限行政策的实施可以缓解城市交通拥堵问题,减少环境污染和交通事故等问题。尾号限行API是一种提供已知所有执行限行政策的城市(如中国大陆等地)未来一段时间内机动车尾号限......