通用说明
调用方式
API 调用遵循 HTTP/HTTPS 协议,各 Region 采用不同的域名,例如:华北-北京的具体域名为http(s)://bls-log.bj.baidubce.com。 数据交换格式为JSON,所有 request/response body内容均采用 UTF-8 编码。
API认证机制
所有的 API 通过 AK(Access Key ID)/SK(Secret Access Key)完成请求签名以通过服务端的鉴权和认证。鉴权认证机制的详细内容请参见鉴权认证机制。
请求结构说明
参数类型 | 说明 |
---|---|
HTTP Method | HTTP请求方法,它告诉服务您正在请求什么类型的操作 |
HEADER | 通过HTTP头域传入,如:x-bce-date |
URI | 通常用于指明操作实体,如:POST /v{version}/instance/{instanceId} |
Query参数 | URL中携带的请求参数 |
RequestBody | 通过JSON格式组织的请求数据体 |
数据交换格式为JSON,所有Requestbody、Responsebody内容均采用UTF-8编码。
响应结构说明
响应值分为两种形式:
返回内容 | 说明 |
---|---|
HTTP STATUS CODE | 如200,400,403,404等 |
ResponseBody | JSON格式组织的响应数据体 |
公共请求头
BLS API 采用 Restful 风格,公共请求头域适用于所有 API 请求,具体定义如下:
Header | 类型 | 说明 |
---|---|---|
Authorization | String | 用于验证请求合法性的认证信息。更多参见鉴权认证 |
Host | String | 访问 Host 值,例如:bls-log.{region}.baidubce.com |
Content-Type | String | RFC 2616 中定义的 HTTP 请求内容类型,目前 BLS API 请求只支持 application/json |
Content-Length | Int | RFC 2616 中定义的 HTTP 请求内容长度 |
X-Bce-Date | String | 表示日期的字符串 |
X-Bce-Request-Id | String | 本次请求的 request id |
X-Bce-Security-Token | String | 当使用 STS 临时身份发送数据时该项必填,其他情况不要填写 |
X-Region | String | 请求访问的地域 |
作为示例,下面是一个标准的用户查询日志集详情的请求头域内容:
GET /v1/logstore/demo HTTP/1.1
X-Bce-Date: 2019-09-04T13:04:26Z
Host: bls-log.bj.baidubce.com
Content-Type: application/json
Authorization:bce-auth-v1/18717522d39411e9b721df098b0b908c/2019-09-10T07:00:20Z/1800/content-type;host;x-bce-date;x-bce-request-id/6a7cb6c9ac7ec156c805e55e7d0bcfc443b47feee97cf099c1c0d9
公共响应头
BLS API 采用 Restful 风格,公共响应头域适用于所有 API 请求,具体定义如下:
Header | 类型 | 说明 |
---|---|---|
Content-Type | String | RFC 2616 中定义的 HTTP 响应内容类型,目前 BLS API 请求只支持 application/json |
Content-Length | Int | RFC 2616 中定义的 HTTP 请求内容长度 |
x-Bce-Request-Id | String | 服务端返回的请求 ID,用于追踪和定位问题,用户提交工单时可以提供该 ID |
幂等性
当调用创建资源的接口时,如果遇到了请求超时或服务器内部错误,用户可能会尝试重发请求,导致资源的超量创建。这时用户可以通过clientToken参数避免创建出比预期要多的资源,即保证请求的幂等性。 幂等性基于clientToken,clientToken是一个长度不超过64位的ASCII字符串,通常放在query string里,如http://bcc.bj.baidubce.com/v1/instance?clientToken=be31b98c-5e41-4838-9830-9be700de5a20。 如果用户使用同一个clientToken值调用创建接口,则服务端会返回相同的请求结果。因此用户在遇到错误进行重试的时候,可以通过提供相同的clientToken值,来确保只创建一个资源;如果用户提供了一个已经使用过的clientToken,但其他请求参数(包括queryString和requestBody)不同甚至url Path不同,则会返回IdempotentParameterMismatch的错误代码。 clientToken的有效期为24小时,以服务端最后一次收到该clientToken为准。也就是说,如果客户端不断发送同一个clientToken,那么该clientToken将长期有效。
日期与时间规范
日期与时间的表示有多种方式。为统一起见,除非是约定俗成或者有相应规范的,凡需要日期时间表示的地方一律采用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秒。