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版本

相关文章
|
2月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
2月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
2月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
3月前
|
JSON 前端开发 API
如何调用体育数据足篮接口API
本文介绍如何调用体育数据API:首先选择可靠服务商并注册获取密钥,接着阅读文档了解基础URL、端点、参数及请求头,然后使用Python等语言发送请求、解析JSON数据,最后将数据应用于Web、App或分析场景,同时注意密钥安全、速率限制与错误处理。
416 152
|
2月前
|
人工智能 自然语言处理 测试技术
Apipost智能搜索:只需用业务语言描述需求,就能精准定位目标接口,API 搜索的下一代形态!
在大型项目中,API 数量庞大、命名不一,导致“找接口”耗时费力。传统工具依赖关键词搜索,难以应对语义模糊或命名不规范的场景。Apipost AI 智能搜索功能,支持自然语言查询,如“和用户登录有关的接口”,系统可理解语义并精准匹配目标接口。无论是新人上手、模糊查找还是批量定位,都能大幅提升检索效率,降低协作成本。从关键词到语义理解,智能搜索让开发者少花时间找接口,多专注核心开发,真正实现高效协作。
|
2月前
|
存储 缓存 算法
亚马逊 SP-API 深度开发:关键字搜索接口的购物意图挖掘与合规竞品分析
本文深度解析亚马逊SP-API关键字搜索接口的合规调用与商业应用,涵盖意图识别、竞品分析、性能优化全链路。通过COSMO算法解析用户购物意图,结合合规技术方案提升关键词转化率,助力卖家实现数据驱动决策,安全高效优化运营。
|
3月前
|
人工智能 运维 监控
阿里云 API 聚合实战:破解接口碎片化难题,3 类场景方案让业务响应提速 60%
API聚合破解接口碎片化困局,助力开发者降本增效。通过统一中间层整合微服务、第三方接口与AI模型,实现调用次数减少60%、响应提速70%。阿里云实测:APISIX+函数计算+ARMS监控组合,支撑百万级并发,故障定位效率提升90%。
275 0
|
3月前
|
JSON 自然语言处理 监控
淘宝关键词搜索与商品详情API接口(JSON数据返回)
通过商品ID(num_iid)获取商品全量信息,包括SKU规格、库存、促销活动、卖家信息、详情页HTML等。
|
3月前
|
人工智能 API 监控
告别多接口拼凑!阿里云 API 模型聚合实现技术能力协同跃迁
API聚合整合400+国内外AI模型,统一接口、屏蔽差异,降低开发与维护成本,提升效率与系统稳定性,助力开发者高效应对多API调用困境。
358 0
|
3月前
|
人工智能 供应链 API
淘宝API商品详情接口全解析:从基础数据到深度挖掘
淘宝API商品详情接口不仅提供基础数据,更通过深度挖掘实现从数据到洞察的跨越。开发者需结合业务场景选择合适分析方法,利用AI标签、区块链溯源等新技术,最终实现数据驱动的电商业务创新。