API 接口规范

简介: API 接口规范

协议

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

域名

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

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

16.png

api版本控制

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

17.png


另一种做法是,将版本号放在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)的信息,还包括各种动物和雇员的信息,则它的路径应该设计成下面这样。



18.pngHTTP请求方式

对于资源的具体操作类型,由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:指定返回结果按照哪个属性排序,以及排序顺序。


?producy_type=1:指定筛选条件


返回数据

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


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


接口返回模板:

19.png
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


传入参数:


名称

类型

必须

描述

key

String

调用key(获取API测试key

secret

String

调用密钥

api_name

String

API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]

cache

String

[yes,no]默认yes,将调用缓存的数据,速度比较快

result_type

String

[json,jsonu,xml,serialize,var_export]返回数据格式,默认为json,jsonu输出的内容中文可以直接阅读

lang

String

[cn,en,ru]翻译语言,默认cn简体中文

version

String

API版本

相关文章
|
7天前
|
监控 数据挖掘 API
京东商品API接口:电商数据自动化的钥匙
京东商品API接口为电商领域带来了巨大的便利和潜力。通过本篇文章,读者应该能够了解如何使用京东商品API接口,并通过示例代码学习如何实际调用API获取商品数据。 随着技术的不断发展,京东商品API接口将继续为电商自动化、数据分析和市场研究提供支持,帮助商家和开发者在竞争激烈的市场中保持领先。我们鼓励读者继续探索和学习,充分利用京东商品API接口带来的机遇。
|
17天前
|
监控 安全 数据挖掘
Email 接口API有哪些?具体分析一下阿里云和AOK的优点
本文介绍了常见的Email接口API,如阿里云邮件推送、AOKSend、SendGrid、Mailgun和Amazon SES。阿里云API以其高稳定性和数据分析功能脱颖而出,支持批量发送和多语言;而AOKSend API以易于集成、高安全性和优秀客户支持为亮点。企业在选择时应考虑自身需求和预算,以优化邮件营销效果。
|
17天前
|
定位技术 API
Angular 调用导入百度地图API接口,2024春招BAT面试真题详解
Angular 调用导入百度地图API接口,2024春招BAT面试真题详解
|
18天前
|
JSON 安全 API
解锁淘宝商品评论API接口:电商数据分析的新视角
淘宝商品评论API接口是淘宝开放平台提供的一组API接口,允许开发者通过编程方式获取淘宝商品评论数据。这些接口可以获取到商品的详细信息、用户评论、评分等数据,为电商数据分析提供了丰富的素材。
|
18天前
|
缓存 负载均衡 安全
探索API接口开发(定制与开发接口)
在当今数字化、互联互通的时代,API(应用程序编程接口)已经成为连接不同软件、服务和应用的关键桥梁。API接口开发,作为软件架构和系统设计的重要组成部分,不仅影响着数据交换的效率,更决定了整个系统的灵活性和可扩展性。本文将深入探讨API接口开发的各个方面,包括其重要性、开发流程、最佳实践以及面临的挑战。
|
19天前
|
文字识别 API 开发工具
印刷文字识别产品使用合集之API接口无法调用如何解决
印刷文字识别(Optical Character Recognition, OCR)技术能够将图片、扫描文档或 PDF 中的印刷文字转化为可编辑和可搜索的数据。这项技术广泛应用于多个领域,以提高工作效率、促进信息数字化。以下是一些印刷文字识别产品使用的典型场景合集。
|
19天前
|
监控 供应链 数据挖掘
抖音电商新篇章:douyin.item_get API接口的深度应用
douyin.item_get接口最基本的应用就是获取商品的详细信息。商家可以通过输入商品的ID或链接,获取商品的标题、价格、图片、描述、规格等关键信息。这些信息对于商家来说至关重要,可以帮助他们了解商品的销售情况、竞争态势以及市场需求。
|
19天前
|
安全 API 开发者
智能体-Agent能力升级!新增Assistant API & Tools API服务接口
ModelScope-Agent是一个交互式创作空间,它支持LLM(Language Model)的扩展能力,例如工具调用(function calling)和知识检索(knowledge retrieval)。它已经对相关接口进行了开源,以提供更原子化的应用LLM能力。用户可以通过Modelscope-Agent上的不同代理(agent),结合自定义的LLM配置和消息,调用这些能力。
|
19天前
|
JSON 搜索推荐 数据挖掘
电商数据分析的利器:电商关键词搜索API接口(标题丨图片丨价格丨链接)
淘宝关键词搜索接口为电商领域的数据分析提供了丰富的数据源。通过有效利用这一接口,企业和研究人员可以更深入地洞察市场动态,优化营销策略,并提升用户体验。随着电商平台技术的不断进步,未来的API将更加智能和个性化,为电商行业带来更多的可能性。
|
19天前
|
存储 缓存 运维
DataWorks操作报错合集之DataWorks根据api,调用查询文件列表接口报错如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。