Hello,各位码友,好久不见。平时比较忙,已经一个月没有发文了。今天还是抓一下一月的小尾巴,赶紧发一篇。本文介绍了我在阿里云上学习Apsara Clouder专项技能认证:实现调用API接口课程的知识的一个总结,后续也会更新一些其他课程的学习总结。希望对您有所帮助,点个关注不迷路,感谢您的支持,谢谢!# API简介
API ( Application Programming Interface ,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码或理解内部工作机制的细节。
面向对象语言的API
库与框架的API
API与协议
API与设备接口
Web API
阿里云API市场提供1000+API服务
API市场:
Web API一班采用HTTP作为底层协议,HTTP请求机制如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mBv6bM29-1611937794192)(E:\阿里\Apsara Clouder专项技能认证:实现调用API接口\请求-响应机制.png)]
为了构造有效的请求,客户端需要包含四个部分:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4YiU3sZn-1611937794195)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210129191641611.png)]
请求方式告诉服务器客户端希望它采取 什么动作。常见的请求方式有四种:
请求头(Headers)
请求主体(Body)
当成功调用API后,除了返回数据外,还会包含一个状态码,处理成功返回2xx:
HTTP状态码 | 语义 |
---|---|
200 OK -[GET] | 服务器成功返回用户请求的数据 |
201 CREATED - [POST/PUT/PATCH] | 新用户新建或修改数据成功 |
202 aCCEPTED - [*] | 表示一个请求已经进入后台排队(异步任务) |
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文档中的描述
JSON格式
{
"name":"中国",
"province":[{
"name":"黑龙江",
"cities":{"city":["哈尔滨","大庆"]}
},{
"name":"广东",
"cities":{"city":["广东","深圳","珠海"]}
}]
}
XML格式
<country>
<name>中国name>
<province>
<name>黑龙江name>
<citys>
<city>哈尔滨city>
<city>大庆city>
citys>
province>
country>
目前最新的API大多数使用JSON数据格式。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立的文本格式,易于人阅读和编写,同时也易于机器解析和生成,是一种理想的数据交换语言
JSON最常用的格式的对象的键值对
{"name":"黑龙江","city":"哈尔滨"}
和普通的JS数组一样,JSON表示数组的方式是使用方括号[]
{
"name":"中国",
"province":[{
"name":"黑龙江",
"city":"哈尔滨"
},{
"name":"广东",
"city":"广州"
}]
}
可以通过APPCODE的方式,实现到被调用接口的身份认证,获取访问相关API的调用权限。
使用方法:
格式:
Authorization:APPCODE AppCode值
示例:
Authorization:APPCODE 3F2504E04F8911D39A0C0305E82C3301
AppKey和AppSecret相当于当前帐户的另外一套账号和密码机制。在云市场购买API之后就可以在控制台找到对应的AppKey和AppSecret。
具体的签名认证方法请参见请求头部字段以及请求签名说明文档
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iHZbz7MM-1611937794196)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210129234801009.png)]
要调用API需要三个基础条件:
可以直接用API文档中提供的多语言调用示例来调用,如下图所示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rvO6y94Z-1611937794197)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210130000009204.png)]
也可以自行编辑HTTP(s)请求来调用API,详见API的请求步骤
该API可查询数据包括股票行情(当前价、市盈利、市净率、总股本、每股净资产、流通股本等)、指标、分实线、k线、历史行情(2000年至今)等,可批量查询沪深股市、香港股市。
阿里云市场
场景识别,通过深度学习算法,自动识别图像中的数十种常见的场景,如天空、草地等等。
你的应用程序可以基于这个功能,轻松实现图片的自动管理、分组和搜索功能,完成大型图像库的智能管理。
阿里云市场
调用地址:
请求方式:POST
返回类型:JSON
身份认证:APPCODE
实例源码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DMJUMKOy-1611937794200)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210130001428418.png)]
返回数据
希望有所帮助!!!
关注我,持续更新。