请求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”
}