API 是一组封装好的函数,通过 API,你可以为应用快速扩展功能,而无需理解它们是如何实现的,从而提升开发效率。通常,API 服务商会提供 API 文档,那么如何根据文档来使用 API 呢?通过本课程,你将 GET 这个技能。

API 简介

屏幕截图 2021-01-12 150509 - 副本.png
屏幕截图 2021-01-12 145852.png

API 的概念

API (Application Programming Interface , 应用程序编程接口) 是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码或理解内部工作机制的细节。

屏幕截图 2021-01-12 150247.png

API 的特点

API 是一个明确定义的接口,可以为其他软件提供特定服务

API 可以小到只包含一个函数,也可以大到包含数以百计的类、方法、全局函数、数据类型、枚举类型和常量等

API 的实现可以是私有的,也可以是开源的

屏幕截图 2021-01-12 151009.png

API 的分类

面向对象语言的 API 举例:JAVA API 列表

库与框架的 API 举例: Windows API、Windows DirectX
API 与协议 举例: LDAP 应用程序接口
API 与设备接口 举例: PC BIOS 调用接口、ASPI for SCSI 设备接口
Web API 举例: Google 地图 API、新浪微博 API、阿里云 API 市场
屏幕截图 2021-01-12 151202.png

为什么要使用 API

快速扩展功能

避免 “造轮子”,提高开发效率
降低模块之间的耦合度
屏幕截图 2021-01-12 151401.png

API 请求与认证

# Web API 协议 及 HTTP 请求

屏幕截图 2021-01-12 155719.png
屏幕截图 2021-01-12 155825.png
图片1.png

Web API 一般采用 HTTP 作为底层协议,HTTP 请求机制如下:

客户端向服务器发送一个请求
服务器给客户端一个响应,告诉客户端是否可以完成它请求的工作。
图片11.png

API 请求方式

请求方式告诉服务器客户端希望它采取什么动作。常见的请求方式有四种:
GET: 请求服务器获取一个资源
POST:请求服务器创建一个新的资源
PUT:请求服务器编辑或更新一个已存在的资源
DELETE:请求服务器删除一个资源。
请求头(Headers):提供了请求的元信息,是一个简单的项目列表,其中有客户端发送请求的时间和请求主体大小、身份认证等信息。
请求体(Body) :包含了客户端希望发送给服务器的数据。
图片12.png
图片13.png

状态返回码

当成功调用 API 后,除了返回数据外,还会包含一个状态码,处理成功返回 2xx
20190925122003402.png

API 未调用成功。则返回错误码。服务端错误码是 5xx,表示服务不可用(此时一般建议重试或联系商品页面的 API 服务商)

20190925122213396.png

客户端错误码为 4xx,表示业务报错。此时一般为参数错误、签名错误、请求方式有误或被流控限制等业务类错误。建议详细查看错误码,针对性解决问题。

参考:错误码表 https://help.aliyun.com/document_detail/43906.html

API 数据格式

<div>
public enum ResultCode {
	//成功
	SUCCESS(1,"成功"),
	//参数错误100-199
	PARAM_IS_INVALID(101,"参数无效"),
	PARAM_IS_BLANK(102,"参数为空"),
	PARAM_TYPE_BIND_ERROR(103,"参数类型错误"),
	PARAM_NOT_COMPLETE(104,"参数缺失"),
	//用户错误200-299
	USER_NOT_LOGGED_IN(201,"用户未登录,访问的路径需要验证,请登录"),
	USER_LOGIN_ERROR(202,"账号不存在或密码错误"),
	USER_ACCOUNT_FORBIDDEN(203,"账号已被禁用"),
	USER_NOT_EXIST(204,"用户不存在"),
	USER_HAS_EXISTED(205,"用户已存在");
	
	private Integer code;
	
	private String message;
	
	ResultCode(Integer code, String message) {
		this.code = code;
		this.message = message;
	}
	
	public Integer code() {
		return this.code;
	}

	public String message() {
		return this.message;
	}
	
}

</div>

屏幕截图 2021-10-14 224556.png
屏幕截图 2021-10-14 224945.png
屏幕截图 2021-10-14 225059.png
屏幕截图 2021-01-12 171256.png
20190925122826120.png

要调用 API 需要三个基础条件

 API: 您即将要调用的 API, 明确 API 参数定义。
 应用 app:作为您调用 API 时的身份,有 AppKey 和 AppSecret 用于验证您的身份。
 API 和 App 的权限关系:App 想调用某个 API 需要具有该 API 的权限,这个权限通过授权的功能来建立。

API 调用注意事项

每个账号下 APP 个数上限为 10 个,APP 名称应为账号下唯一。
调用 API 的流控限制为,单个 IP,QPS 不超过 100.
你有权操作购买的 API 与 APP 的授权和解除授权。由服务提供方授权给你的 APP 的 API, 你无权操作解除授权。
你的请求需要包含签名信息。

思维导图
20190917160547448.png

证书展示
aliiyun.jpg