通用说明
API 调用遵循 HTTP 协议,各 Region 采用不同的域名,具体域名为 apigw-control.{region}.baidubce.com,例:apigw-control.bj.baidubce.com。数据交换格式为 JSON,所有 request/response body 内容均采用 UTF-8 编码。
各 Region 对应的域名详见服务域名。
实名认证
使用 API 网关专享版 API 的用户需要实名认证,没有通过实名认证的可以前往百度智能云官网控制台中的安全认证下的实名认证中进行认证。没有通过实名认证的用户请求将会得到以下错误提示码:
| 错误码 | 错误描述 | HTTP 状态码 | 中文解释 |
|---|---|---|---|
| QualifyNotPass | The User has not pass qualify. | 403 | 账号没有通过实名认证 |
API 认证机制
所有 API 的安全认证一律采用 Access Key 与请求签名机制。Access Key 由 Access Key ID 和 Secret Access Key 组成,均为字符串。对于每个 HTTP 请求,使用下面所描述的算法生成一个认证字符串。提交认证字符串放在 Authorization 头域里。服务端根据生成算法验证认证字符串的正确性。认证字符串的格式为 bce-auth-v{version}/{accessKeyId}/{timestamp}/{expirationPeriodInSeconds}/{signedHeaders}/{signature}。
- version 是正整数。
- timestamp 是生成签名时的 UTC 时间。
- expirationPeriodInSeconds 表示签名有效期限。
- signedHeaders 是签名算法中涉及到的头域列表,本 API 仅使用 host 头域。
- signature 是 256 位签名的十六进制表示,由 64 个十六进制字符组成。
当百度智能云接收到用户的请求后,系统将使用相同的 SK 和同样的认证机制生成认证字符串,并与用户请求中包含的认证字符串进行比对。如果认证字符串相同,系统认为用户拥有指定的操作权限,并执行相关操作;如果认证字符串不同,系统将忽略该操作并返回错误码。
鉴权认证机制的详细内容请参见鉴权认证机制。
通信协议
API 网关专享版 API 支持 HTTP 和 HTTPS 两种调用方式。为了提升数据的安全性,建议通过 HTTPS 调用。
请求结构说明
请求参数包括如下 4 种:
| 参数类型 | 说明 |
|---|---|
| URI | 指明要执行的操作,固定为 POST /?action={action},如 POST /?action=CreateInstance |
| Query 参数 | URL 中携带的请求参数,如 action |
| HEADER | 通过 HTTP 头域传入,如 Authorization |
| RequestBody | 通过 JSON 格式组织的请求数据体 |
响应结构说明
响应值分为两种形式:
| 返回内容 | 说明 |
|---|---|
| HTTP STATUS CODE | 如 200、400、403、404 等 |
| ResponseBody | JSON 格式组织的响应数据体 |
日期与时间规范
日期与时间的表示有多种方式。为统一起见,除非是约定俗成或者有相应规范的,凡需要日期时间表示的地方一律采用 UTC 时间,遵循 ISO 8601,并做以下约束:
- 表示日期一律采用 YYYY-MM-DD 方式,例如 2014-06-01 表示 2014 年 6 月 1 日。
- 表示时间一律采用 hh:mm:ss 方式,并在最后加一个大写字母 Z 表示 UTC 时间。例如 23:00:10Z 表示 UTC 时间 23 点 0 分 10 秒。
- 凡涉及日期和时间合并表示时,在两者中间加大写字母 T,例如 2014-06-01T23:00:10Z 表示 UTC 时间 2014 年 6 月 1 日 23 点 0 分 10 秒。
规范化字符串
通常一个字符串中可以包含任何 Unicode 字符。在编程中这种灵活性会带来不少困扰。因此引入“规范字符串”的概念。一个规范字符串只包含百分号编码字符以及 URI(Uniform Resource Identifier)非保留字符(Unreserved Characters)。
RFC 3986 规定 URI 非保留字符包括以下字符:字母(A-Z,a-z)、数字(0-9)、连字号(-)、点号(.)、下划线(_)、波浪线(~)。
将任意一个字符串转换为规范字符串的方式是:
- 将字符串转换成 UTF-8 编码的字节流。
- 保留所有 URI 非保留字符原样不变。
- 对其余字节做一次 RFC 3986 中规定的百分号编码(Percent-Encoding),即一个 % 后面跟着两个表示该字节值的十六进制字母。字母一律采用大写形式。
示例:
原字符串:this is an example for 测试,对应的规范字符串:this%20is%20an%20example%20for%20%E6%B5%8B%E8%AF%95。
排版约定
| 排版格式 | 含义 |
|---|---|
| < > | 变量 |
| [ ] | 可选项 |
| { } | 必选项 |
| |
互斥关系 |
| 等宽字体 Courier New | 屏幕输出 |
评价此篇文章
