课时1: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市场
阿里云API市场精选产品
课时2:API请求协议
Web API 协议
Web API 一般采用HTTP作为底层协议,HTTP请求机制如下:
1.客户端服务器发送一个请求
2.服务器给客户端一个响应,告诉客户端是否可以完成它请求的工作
HTTP请求包含的内容
API请求方式
请求方式告诉服务器客户端希望它采取什么动作。常见的请求方式有四种:
请求头与请求主体
状态码—成功状态
状态码—服务端错误码
状态码—客户端错误码
客户端错误码为4XX,表示业务报错。此时一般为参数错误、签名错误、请求方式有误或被流控限制等业务类错误。建议详细查看错误码,针对性解决问题。
参考:错误代码表 https://help.aliyun.com/document_detail/43906.html
注意:有些API自定义了错误码,具体请查看该API文档中的描述。
返回数据格式
JSON数据格式表示方法
API简单身份认证(APPCODE方式)
API签名认证(AppKey & AppSecret)
课时3:API调试与调用
API调试
API调用步骤
获取API文档
创建应用
获得授权
调用API
API调用注意事项
python3代码
#-*-coding:utf-8 -*-
import urllib.request, sys
import ssl
host = 'https://api01.aliyun.venuscn.com'
path = '/ip'
method = 'GET'
appcode = '你自己的AppCode'
querys = 'ip=218.18.228.178'
bodys = {}
url = host + path + '?' + querys
request = urllib.request.Request(url)
request.add_header('Authorization', 'APPCODE ' + appcode)
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
response = urllib.request.urlopen(request, context=ctx)
content = response.read()
if (content):
print(content.decode('utf-8'))
课时4:API实战——股票行情查询
股票行情查询API说明
开通股票行情查询API
查看API文档
调用股票行情查询API
python3代码:
#-*-coding:utf-8 -*-
import urllib.request, sys
import ssl
host = 'https://ali-stock.showapi.com'
path = '/index-kline'
method = 'GET'
appcode = '你自己的AppCode'
querys = 'beginDay=20190801&code=000001&time=day'
bodys = {}
url = host + path + '?' + querys
request = urllib.request.Request(url)
request.add_header('Authorization', 'APPCODE ' + appcode)
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
response = urllib.request.urlopen(request, context=ctx)
content = response.read()
if (content):
print(content.decode('utf-8'))
课时5:API实战——场景识别
场景识别API说明
开通场景识别API
查看API文档