API是一组封装好的函数,通过API,你可以为应用快速扩展功能,而无需理解它们是如何实现的,从而提升开发效率。通常,API服务商会提供API文档,那么如何根据文档来使用API呢?
PS:该文章内容来自于阿里云大学课程之[实现调用API接口],欢迎小伙伴们一起学习哦~
文章目录
- API简介
- API的概念
- API的特点
- API的分类
- API的请求与认证
- API请求方式
- 请求头与请求体
- 状态码-成功状态
- 状态码-服务端错误码
- 状态码-客户端错误码
- 返回数据格式- JSON OR XML
- JSON数据格式表示方法
- API简单身份认证(APPCODE方式)
- API签名认证(AppKey&AppSecret)
- API调试与调用
- API调试
- API调用步骤
- 调用API
- API调用注意事项
API简介
API的概念
API(Application Programming Interface , 应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码或理解内部工作机制的细节。
API的特点
- API是一个明确定义的接口,可以为其他软件提供特定服务
- API可以小到只包含一个单独的函数,也可以大到包含数以百计的类,方法,全局函数,数据类型,枚举类型和常量等等
- API的实现可以是私有的,也可以是开源的
API的分类
->面向对象语言的API
举例:Java API列表
->库与框架的API
举例:Windows API ,Windows DirectX
API与协议
举例:LDAP应用程序接口
API与设备接口
举例:PC BIOS调用接口,ASPI for SCSI 设备接口
Web API
举例:Google地图API,新浪微博API,阿里云API市场
API的请求与认证
API请求方式
- GET:请求服务器获取一个资源
- POST:请求服务器创建一个心得资源
- PUT:请求服务器编辑或更新一个已经存在的资源
- DELETE:请求服务器删除一个资源
请求头与请求体
请求头(Headers)
- 提供了请求的元信息,是一个简单的项目列表,其中有客户端发送请求的时间和请求主体的大小,身份验证等信息
请求体(Body)
- 包含了客户端希望发送给服务器的数据
状态码-成功状态
当成功调用API之后,除了返回数据外,还会包含一个状态码,处理成功返回2xx。eg:200 -OK
状态码-服务端错误码
API未调用成功,则返回错误码。服务端错误码是5xx,表示服务不可用(此时一般建议重试或者联系商品页面的API服务商)
状态码-客户端错误码
客户端错误码为4xx,表示业务报错。此时一般为参数错误,签名错误,请求方式有误或者被流控限制等业务类错误。建议详细查看错误码,针对性解决问题。
返回数据格式- JSON OR XML
目前最新的API大多使用JSON格式,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本结构,易于人阅读和编写,同时也易于机器解析和生成,是一种理想的数据交换语言。
JSON数据格式表示方法
1.表示对象:
JSON最常用的格式是对象的键值对
{"name":"黑龙江","city":"哈尔冰"}
2.表示数组
和普通的JS数组一样,JSON表示数组的方式是使用方括号
{
"name":中国,
"province":[{"name":"黑龙江","city":"哈尔冰"},{"name":"广东","city":"广州"}
]
}
API简单身份认证(APPCODE方式)
可以通过APPCODE的方式,实现到被带哦用接口的身份认证,获取访问相关API的调用权限。
使用方法:
- 请求Header中添加的Authorization字段;
- 配置Authorization字段的值为“APPCODE+半角空格+APPCODE值”
格式:Authorization:APPCODE APPCode值
示例Authorization:AppCODE 3f2504e048911d39a0
API签名认证(AppKey&AppSecret)
AppKey和AppSecret相当于当前账户的另一套账号和密码机制。在云市场购买API之后,就可以在控制台找到对应的App Key和AppSecret
API调试与调用
API调试
- 阿里云API市场提供了在线调试功能,以方便用户在不用写调用代码的前提下进行快速测试。 eg:IP地址查询
API调用步骤
获取API文档->创建应用->获取授权->调用API
要调用API需要三个基础条件:
- API:您即将要调用的API,明确API参数定义
- 应用APP:作为您调用API时的身份,有AppKey和AppSecret用于验证您的身份
- API和App的授权关系:App像调用某个API需要有该API的权限,这个权限通过授权的功能来实现。
->获取API文档
- 在云市场上选择API,在API产品页面即可找到该API的使用说明文档。
- 购买API服务成功后,进入云市场的管理控制台,就会看到购买的所有API服务。(如果还没有开通API网关服务,那么会同时开通API网关服务)
- 可以跳转到API网关的控制台,在已购买API页面,展示购买的所有API服务列表,以及使用请款概述。
->创建应用
- 应用(APP)是调用API服务时的身份。每个APP有一组Key和Secret,可以理解为账号和密码,调用API的时候需要将AppKey做参数传入,AppSecret用于签名计算,网关会校验这对密匙对你进行身份验证。
- 可以在API网管控制台应用管理页面创建APP,创建成功后,系统会为APP分配一对AppKey和AppSecret。
->获取授权
- 授权,是指授予APP调用某个API的权限,您的APP需要获得API的授权才能使用该API。
- 如果你在市场上购买了API,就可以指定将已购买的API授权给哪些APP,然后这些APP才能调用该API。
- 如果您没有APP,购买时云市场也会为你创建一个APP,并且授权。
->调用API(接下部分)
调用API
- 可以使用API文档中提供的多语言调用实例开调用
- 也可以自行编辑HTTP(s)请求来调用API
API调用注意事项
- 每个账号下的APP个数上线为10个,APP名称应为账号下唯一。
- 调用API的流控限制为,单个IP,QPS不超过100。
- 你有权操作购买的API与APP的授权和解除授权。由服务提供方授权给你的APP和API,你无权操作解除授权。
- 你的请求要包含签名信息,请参照文档请求签名说明文档。