登录后台

页面导航

本文编写于 236 天前,最后修改于 236 天前,其中某些信息可能已经过时。

# 阿里云认证学习笔记 - 实现调用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市场

## 为什么使用

  • 快速扩展功能
  • 避免"造轮子",提高开发效率
  • 降低模块之间的耦合度 (重复部分)

[打广告开始 :) ]

## 如何访问市场

  1. 打开 阿里云官网
  2. 点击云市场
  3. 找到 API

## Web API 协议
### 简介
基于HTTP协议作为底层协议(便捷开发,多语言支持)
HTTP请求机制如下:

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

### HTTP协议
包含4个部分

  • URL (API调用地址)
  • 请求方式 (POST/GET/PUT/DELETE)
  • Headers (请求头) UA/Content-type
  • Body(请求体) 表单内容等

### 请求方式
请求方式告诉服务器客户端希望采取什么动作,有4种

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

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

#### 请求体(Body)
包含了客户端希望发送给服务器的数据

#### 状态码
##### 成功状态

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

##### 服务端错误码

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

4xx表示业务报错.此时一般为参数错误,签名错误,请求方式有误或被流控限制等业务类错误,详细看
错误代码表

#### 返回数据格式
JSON

#### API简单身份认证
##### APPCODE
使用方法:
在请求Header中添加Authorzation字段;
值为 APPCODE + 半角空格+ APPCODE值
格式:Authorzation: APPCODE AppCode值

##### AppKey & APPSecret
## 考试笔记

  • 403为限流
  • json格式如下
{
"firstname":""
}
  • 调用 API 的流控限制为,单个 IP,QPS 不超过100
  • 你有权操作购买的 API 与 app 的授权和解除授权.由服务提供方授权给你的 app 的api,你无权操作解除授权
  • 获取 api 文档--创建应用--获取授权--调用 api
  • 请求方式

    • get:请求服务器获取一个资源
    • post:请求服务器创建一个资源
    • put:请求服务器更新或者编辑一个资源
    • delete:请求服务器删除一个资源