【学习总结】-Apsara Clouder专项技能认证:实现调用API接口学习总结


写在前面:

​ Hello,各位码友,好久不见。平时比较忙,已经一个月没有发文了。今天还是抓一下一月的小尾巴,赶紧发一篇。本文介绍了我在阿里云上学习Apsara Clouder专项技能认证:实现调用API接口课程的知识的一个总结,后续也会更新一些其他课程的学习总结。希望对您有所帮助,点个关注不迷路,感谢您的支持,谢谢!# API简介

API的概念:

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

API的特点:

  • API是一个明确定义的接口,可以为其他软件提供特定服务
  • API可以小到只包含一个单独的函数,也可以大到包含数以百计的类、方法、全局函数、数据类型、枚举类型和常量等
  • API的实现可以是私有的,也可以是开源的

API的分类:

面向对象语言的API

  • 举例:Java API列表

库与框架的API

  • 举例:Windows API、Window DirectX

API与协议

  • LOAP应用程序接口

API与设备接口

  • PC BIOS调用接口、ASPI for SCSI设备接口

Web API

  • Google地图API、新浪微博API、阿里云市场API

为什么要使用API

  • 快速扩展功能
  • 避免“造轮子”,提升开发效率
  • 降低模块之间的耦合度

阿里云API市场

阿里云API市场提供1000+API服务

API市场:

  • 电子商务
    • IP地址查询企业版
    • 商品条码查询
    • 新浪微博API
    • 智能创意云服务-抠图
  • 经融理财
    • 失信被执行人黑名单
    • 身份证实名
    • 汇率查询转换
    • 商品条形码查询
  • 交通地理
    • 航班起降时间查询
    • 今日油价
    • 车辆尾号限行
    • 经纬度地址转换接口
  • 企业管理
    • 税务欠税违法负面信息
    • 企业工商数据查询
    • 学历学籍授权查询
    • 软件著作权查询
  • 公共事务
    • 天气预报
    • 图片验证码识别
    • IP地址查询
    • 阿里短信服务
  • 气象水利
    • PM2.5空气质量指数
    • 墨迹天气Final版
    • 全国天气预报查询
    • 国控实时空气质量数据
  • 人工智能
    • 衣+人脸比对
    • 汉王云-文本识别商务版
    • 机器翻译
    • 机器翻译-翻译接口
  • 生活服务
    • 手机归属地查询
    • 微信热点
    • 全国快递查询
    • 公交地铁查询

API请求与认证

Web API协议

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mBv6bM29-1611937794192)(E:\阿里\Apsara Clouder专项技能认证:实现调用API接口\请求-响应机制.png)]

HTTP请求包含的内容

为了构造有效的请求,客户端需要包含四个部分:

  • URL(API调用地址)
  • 请求方式
  • Headers(请求头)
  • Body(请求主体)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4YiU3sZn-1611937794195)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210129191641611.png)]

API请求方式

请求方式告诉服务器客户端希望它采取 什么动作。常见的请求方式有四种:

  • GET:请求服务器获取一个资源
  • POST:请求服务器创建一个新的资源
  • PUT:请求服务器编辑或更新一个已存在的资源
  • DELETE:请求服务器删除一个资源

请求头与请求主体

  • 请求头(Headers)

    • 提供了请求的元信息,是一个简单的项目列表,其中有客户端发送请求的时间和请求主题大小、身份认证等信息
  • 请求主体(Body)

    • 包含了客户端希望发送给服务器的数据

状态码-成功状态

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

HTTP状态码语义
200 OK -[GET]服务器成功返回用户请求的数据
201 CREATED - [POST/PUT/PATCH]新用户新建或修改数据成功
202 aCCEPTED - [*]表示一个请求已经进入后台排队(异步任务)
204 NO CONTENT - [DELETE]用户删除数据成功

状态码- 服务端错误码

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

错误代码HTTP状态码语义解决方案
Internal Error500API网关内部错误建议重试
Failed To Invoke Backend Service500底层服务错误API提供者底层服务错误信息,建议重试,如果重试多次仍然不可用,可联系API服务商解决
Service Unavailable503服务不可用建议稍后重试
Async Service504后端服务超时建议稍后重试

状态码-客户端错误代码

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

注意 :有些API定义了错误码,具体请查看API文档中的描述

返回数据格式

  • JSON格式

    {
        "name":"中国",
        "province":[{
        "name":"黑龙江",
        "cities":{"city":["哈尔滨","大庆"]}
    },{
        "name":"广东",
        "cities":{"city":["广东","深圳","珠海"]}
    }]
    }
    
  • XML格式

<?xml version="1.0"encoding="utf-8"?>
<country>
    <name>中国</name>
    <province>
    	<name>黑龙江</name>
        <citys>
        	<city>哈尔滨</city>
            <city>大庆</city>
        </citys>
    </province>
</country>

目前最新的API大多数使用JSON数据格式。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立的文本格式,易于人阅读和编写,同时也易于机器解析和生成,是一种理想的数据交换语言

JSON数据格式表示方法

  1. 表示对象

JSON最常用的格式的对象的键值对

{"name":"黑龙江","city":"哈尔滨"}
  1. 表示数组

和普通的JS数组一样,JSON表示数组的方式是使用方括号[]

{
    "name":"中国",
    "province":[{
        "name":"黑龙江",
        "city":"哈尔滨"
    },{
        "name":"广东",
        "city":"广州"
    }]
}

API简单身份认证(APPCODE方式)

可以通过APPCODE的方式,实现到被调用接口的身份认证,获取访问相关API的调用权限。

使用方法

  • 请求Header中添加的Authorization
  • 配置Authorization字段的值为“APPCODE + 半角空格 + APPCODE值”。

格式

​ Authorization:APPCODE AppCode值

示例

​ Authorization:APPCODE 3F2504E04F8911D39A0C0305E82C3301

API签名认证(AppKey & AppSecret)

AppKey和AppSecret相当于当前帐户的另外一套账号和密码机制。在云市场购买API之后就可以在控制台找到对应的AppKey和AppSecret。

具体的签名认证方法请参见请求头部字段以及请求签名说明文档


API调试与调用

API调试

  • 阿里云API市场提供了在线调试功能,以方便用户在不写调用代码的前提下进行快速测试

API调用步骤

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iHZbz7MM-1611937794196)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210129234801009.png)]

要调用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文档中提供的多语言调用示例来调用,如下图所示

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rvO6y94Z-1611937794197)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210130000009204.png)]

  • 也可以自行编辑HTTP(s)请求来调用API,详见API的请求步骤

API调用注意事项

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

API实战-股票行情查询

股票行情查询API说明

该API可查询数据包括股票行情(当前价、市盈利、市净率、总股本、每股净资产、流通股本等)、指标、分实线、k线、历史行情(2000年至今)等,可批量查询沪深股市、香港股市。

开通股票查询API

阿里云市场

查看API文档

API实战-场景识别

场景识别API说明

场景识别,通过深度学习算法,自动识别图像中的数十种常见的场景,如天空、草地等等。

你的应用程序可以基于这个功能,轻松实现图片的自动管理、分组和搜索功能,完成大型图像库的智能管理。

开通场景识别API

阿里云市场

查看API文档

调用地址:

请求方式:POST

返回类型:JSON

身份认证:APPCODE

调用场景识别API

  • 实例源码

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DMJUMKOy-1611937794200)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210130001428418.png)]

  • 返回数据


希望有所帮助!!!
关注我,持续更新。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

7旅病娘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值