通用说明
API 服务域名
Redis API 的服务域名包括:
Region | EndPoint | Protocol |
---|---|---|
北京 | redis.bj.baidubce.com | HTTP and HTTPS |
保定 | redis.bd.baidubce.com | HTTP and HTTPS |
广州 | redis.gz.baidubce.com | HTTP and HTTPS |
苏州 | redis.su.baidubce.com | HTTP and HTTPS |
武汉 | redis.fwh.baidubce.com | HTTP and HTTPS |
香港 | redis.hkg.baidubce.com | HTTP and HTTPS |
通信协议
API 调用遵循 HTTP 协议,各 Region 采用不同的域名,具体域名为 redis.{region}.baidubce.com。 数据交换格式为 JSON,所有 request/response body 内容均采用 UTF-8 编码。
请求参数
请求参数包括如下4种:
参数类型 | 说明 |
---|---|
URI | 通常用于指明操作实体,如:POST /v{version}/instance/{instanceId} |
Query参数 | URL中携带的请求参数 |
HEADER | 通过HTTP头域传入,如:x-bce-date |
RequestBody | 通过JSON格式组织的请求数据体 |
返回值
返回值分为两种形式:
返回内容 | 说明 |
---|---|
HTTP STATUS CODE | 如200,400,403,404等 |
ResponseBody | JSON格式组织的响应数据体 |
API 版本号
参数 | 类型 | 参数位置 | 描述 | 是否必须 |
---|---|---|---|---|
version | string | URL参数 | API版本号,当前API版本为v1 | 是 |
认证机制
所有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是签名算法中涉及到的头域列表。头域名之间用分号(;)分隔,如host;x-bce-date。列表按照字典序排列。(本API签名仅使用host和x-bce-date两个header)
- signature是256位签名的十六进制表示,由64个小写字母组成。
密码加密传输规范定义
所有涉及密码的接口参数都需要加密,禁止明文传输。密码一律采用AES 128位加密算法进行加密,用SK的前16位作为密钥,加密后生成的二进制字节流需要转成十六进制,并以字符串的形式传到服务端。具体步骤如下:
- byte[] bCiphertext= AES(明文,SK)
- String strHex = HexStr(bCiphertext)
幂等性
当调用创建接口时如果遇到了请求超时或服务器内部错误,用户可能会尝试重发请求,这时用户通过clientToken参数避免创建出比预期要多的资源,即保证请求的幂等性。
幂等性基于clientToken,clientToken是一个长度不超过64位的ASCII字符串,通常放在query string里,如http://scss.bj.baidubce.com/v1/instance?clientToken=be31b98c-5e41-4838-9830-9be700de5a20
。
如果用户使用同一个clientToken值调用创建接口,则服务端会返回相同的请求结果。因此用户在遇到错误进行重试的时候,可以通过提供相同的clientToken值,来确保只创建一个资源;如果用户提供了一个已经使用过的clientToken,但其他请求参数(包括queryString和requestBody)不同甚至url Path不同,则会返回IdempotentParameterMismatch的错误代码。
clientToken的有效期为24小时,以服务端最后一次收到该clientToken为准。也就是说,如果客户端不断发送同一个clientToken,那么该clientToken将长期有效。
使用 Redis API 的用户需要实名认证,没有通过实名认证的可以前往百度开放云官网控制台中的安全认证下的实名认证中进行认证。 没有通过实名认证的用户请求将会得到以下错误提示码:
错误码 | 错误描述 | HTTP状态码 | 中文解释 |
---|---|---|---|
QualifyNotPass | The User has not pass qualify. | 403 | 账号没有通过实名认证 |