aliyun-Apsara Clouder专项技能认证:实现调用API接口
课时1:API简介
-
API的概念
API(Application Programming Interface,应用程序编程接口)
是一些预先定义的函数
目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码或理解内部工作机制的细节
-
API的特点
- API是一个明确定义的接口,可以为其他软件提供特定的服务
- API可以小到只包含一个单独的函数,也可以大到包含数以百计的类、方法、全局函数、数据类型、枚举类型和常量等
- API的实现可以是私有的,也可以是开源的
-
API的分类
-
面向对象语言的API
eg.Java API列表
-
库与框架的API
eg.Windows API、Windows DirectX
-
API与协议
eg.LDAP应用程序接口
-
API与设备接口
eg.PC BIOS调用接口、ASPI for SCSI设备接口
-
Web API
eg.Google地图API、新浪微博API、阿里云API市场
-
-
为什么要使用API
- 快速扩展功能
- 避免“造轮子”,提高开发效率
- 降低模块之间的耦合度
-
阿里云市场API专区
aliyun.com 》》 云市场 》》API专区
课时2:API请求与认证
-
Web API协议及HTTP请求
-
Web API一般采用HTTP作为底层协议
- HTTP请求机制如下:
- 客户端向服务器发送一个请求
- 服务器给客户端一个响应,告诉客户端是否可以完成他请求的工作
- HTTP请求机制如下:
-
HTTP请求包含的内容
-
URL(API调用地址)
-
Method(请求方式)
-
Header(请求头)
提供了请求的元信息,是一个简单的项目列表,其中有客户端发送请求的时间和请求主体大小、请求的发起方(浏览器or编程语言),请求的文档类型,身份认证信息…
-
Body(请求主体)
包含了客户端希望发送给服务器的数据
-
-
-
API请求方式
- GET:请求服务器获取一个资源
- POST:请求服务器创建一个新的资源
- PUT:请求服务器编辑或更新一个已存在的资源
- DELETE:请求服务器删除一个资源
-
状态返回码
-
当成功调用API后,除了返回数据外,还会包含一个状态码,除了成功返回2xx:
HTTP状态码 语义 200 OK - [GET] 服务器成功返回用户请求的数据 201 CREATED - [POST/PUT/PATCH] 用户新建或修改数据成功 202 ACCPECTED - [*] 表示一个请求已经进入后台排队(异步任务) 204 NO CONTENT - [DELETE] 用户删除数据成功 -
API未调用成功,则返回错误码。服务端错误码是5xx,表示服务不可用(此时一般建议重试或联系商品页面的API服务商)
错误代码 HTTP状态码 语义 解决方案 Internal Error 500 API网关内部错误 建议重试 Failed To Invoke Backend Service 500 底层服务错误 API提供者底层服务错误,建议重试,如果重试多次仍然不可用,可联系API服务商解决 Service Unavailable 503 服务不可用 建议稍后重试 Async Service 504 后端服务超时 建议稍后重试 -
客户端错误码为4xx,表示业务报错。此时一般为参数错误、签名错误、请求方式有误或被流控限制等业务类错误。建议详细查看错误码,针对性解决问题
- 注意:有些API自定义了错误码,具体请查看该API文档中的描述
-
-
API数据格式
- JSON格式、XML格式
- 目前在最新的API大多使用JSON数据格式。JSON(JavaScrip Object Notation)是一种轻量级的时间交换格式,采用完全独立于语言的文本格式,易于人阅读和编写,同时也易于机器解析和生成,是一种理想的数据交换语言
- JSON数据格式表示方法
- 表示对象:JSON最常用的格式是对象的键值对
- 表示数组:和普通的JS数组一样,JSON表示数组的方式是使用方括号[]
- JSON格式、XML格式
-
API身份认证及签名认证
-
简单身份认证(APPCODE方式)
通过APPCODE的方式,实现到被调用接口的身份认证,获取访问相关API的调用权限
- 使用方法:
- 请求Header中添加的Authorization字段
- 配置Authorization字段的值为“APPCODE + 半角空格 + APPCODE值”
- 格式:Authorization:APPCODE AppCode值
- 实例:Authorization:APPCODE 3F2504E8911D39A0C0305E82C3301
某些情况下太过简单,不安全
- 使用方法:
-
API签名认证(AppKey&AppSecret)
AppKey和AppSecret相当于当前账户的另外一套账号和密码机制。在云市场购买API之后,就可以在控制台找到对应的AppKey和AppSecret
-
课时3:API调试与调用
-
API调试
- 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页面,展示购买的所有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
APPCODE或AppKey&AppSecret
-
API调用注意事项
-
每个账号下APP个数上限为10个,APP名称应为账号下唯一
-
调用API的流控限制为,单个IP,QPS不超过100,同时满足API提供方的流控限制
-
你有权操作购买的API鱼APP的授权和接触授权。由
服务提供方授权给你的APP的API,你无权操作接触授权。
-
你的请求需要包含签名信息
-
课时4:API实战——股票行情查询
- 股票行情查询API说明
- 该API课查询数据包括股票行情()
- 开通股票行情查询API
- 查看API文档
- 调用股票行情查询API