构造请求

请求URL

请求URL由如下部分组成:

{URL-scheme} :// {Endpoint} / {resource-path} ? {query-string}

请求URL包含在请求消息头中,相关参数说明如下表:

参数名

参数解释

URI-scheme

表示用于传输请求的协议,当前API接口采用HTTPS协议或HTTP协议。

Endpoint

指定承载API服务的服务器域名或IP地址加端口号,即调用API服务的接入地址。各服务在不同区域的接入地址不同,例如某服务在华东-苏州的接入地址为:“api-wuxi-1.cmecloud.cn:8443”。

resource-path

资源路径,也即API的请求路径。从具体API的URL模块获取,以“创建云主机”为例,API的resource-path为“/api/v2/server/order”。

query-string

公共请求参数,请求参数前面需要携带“?”,形式为“参数名=参数取值”,例如“AccessKey=d0742694e5784074af7b2c5ecff21455”,参数之间由“&”连接。


例如,“身份信息查验接口”携带云API服务鉴权的请求URL拼装如下:

https://api-wuxi-1.cmecloud.cn:8443/api/kms/v1/id-cards/verifications?AccessKey=d0742694e5784074af7b2c5ecff21455&SignatureMethod=HmacSHA1&SignatureNonce=f20198f6f88c42728d2e16a47b5df559&SignatureVersion=V2.0&Timestamp=2020-06-02T17%3A10%3A20Z&Version=2016-12-05&Signature=2ec4b467fdc7f342db5cbcd2835e36359549c0f9

请求方法

HTTP请求方法说明如下表:

方法

说明

GET

请求服务器返回指定资源。

PUT

请求服务器更新指定资源。

POST

请求服务器新增资源或执行特殊操作。

DELETE

请求服务器删除指定资源,如删除对象等。

HEAD

请求服务器资源头部。

PATCH

请求服务器更新资源的部分内容。

当资源不存在的时候,PATCH可能会去创建一个新的资源。

例如,“创建主密钥接口”的请求方法为“POST”,则其请求为:

POST https://api-beijing-1.cmecloud.cn/api/kms/v1/cmk/create

请求消息头

附加请求头字段,如指定的URL和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。

公共请求消息头字段定义如下表:

名称

描述

是否必选

Content-Type

RFC 2616中定义的HTTP请求资源内容类型,例如:application/json

类型:字符串

默认值:application/json

使用场景:需要向API服务提交数据的请求

是

Content-Length

RFC 2616中定义的HTTP请求内容长度

类型:字符串

默认值:无

使用场景:需要向API服务提交数据的请求

针对 PUT 和 POST 请求(指定 Transfer-Encoding 请求头部的 PUT Object 请求除外),此头部是必选项

针对 GET、HEAD、DELETE 和 OPTIONS 请求,不能指定此头部

Version

API版本号,为日期形式:YYYY-MM-DD,本版本对应为2016-12-05

参数类型:字符串

是

AccessKey

移动云颁发给用户的密钥对应的keyId(公钥)

类型:字符串

默认值:无

否,使用AK/SK认证时此字段必选

Timestamp

请求的时间戳,HTTP 1.1协议中规定的GMT时间

例如:Wed, 05 Sep. 2012 23:00:00 GMT

类型:字符串

默认值:无

是

Signature

经由密钥加密生成的签名结果串

类型:字符串

默认值:无

是

SignatureMethod

签名方式,目前支持HMAC-SHA1

类型:字符串

默认值:无

是

SignatureVersion

签名算法版本,目前版本是2.0

类型:字符串

默认值:无

是

SignatureNonce

用户发送请求的唯一随机数,防止重放攻击,用户在不同请求间要使用不同的随机数值

类型:字符串

默认值:无

是

Host

请求报头指定的服务器的域名(虚拟主机),和(可选地)的 TCP 端口。格式:hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443

否

使用AK/SK认证时此字段必选

token

如果使用Token认证的方式,此字段携带认证密钥

类型:字符串

默认值:无

否

使用Token认证时该字段必须

Accept

用来告知(服务器)客户端可以处理的内容类型,用MIME类型来表示。借助内容协商机制, 服务器可以从诸多备选项中选择一项进行应用,并使用 Content-Type通知客户端它的选择

否

application/json

Accept-Charset

用来告知(服务器)客户端可以处理的字符集类型。 借助内容协商机制,服务器可以从诸多备选项中选择一项进行应用, 并使用Content-Type通知客户端它的选择

否

utf-8

Accept-Encoding

请求的 HTTP 标头通告其内容编码,通常是一个压缩算法中,客户端是能够理解的。使用内容协商,服务器选择其中一个提议,使用它并通过Content-Encoding响应头向客户端通知其选择

否

Gzip, deflate

请求消息体

请求消息体通常以结构化格式JSON发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。HTTP请求的正文针对不同的URL对象有不同的必选字段和可选字段。所有新增的变量定义必须参照“key:value”形式提供。

若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。

例如,JSON格式的请求消息体为:

Content-Type: application/json
Accept: application/json
{
“tenantId”: “t00001”,
“diskFormat”: “none”
}
本文档内容整理自移动云官方帮助中心(查看原文),仅供参考。