1. 云控制台API请求结构说明
云控制台API使用Restful风格的请求。请求结构包括请求方法、请求地址(URL)、公共请求参数和接口请求参数等组成。以下分别简单介绍各部分的结构和使用说明。
云控制台API请求使用UTF-8编码格式。
1.1. 请求方法
请求方法是指云控制台API调用时使用的HTTP方法。常见的HTTP方法包括GET、POST、PUT、DELETE等。云控制台API使用POST作为请求方法。
1.2. 请求地址
请求地址指调用云控制台API请求的URL路径。请求地址包括请求协议、服务地址(EndPoint)、API版本、产品/服务名称和操作类型。
请求地址的格式如下:
<请求协议>://<服务地址>/<API版本>/<产品/服务名称>/<操作类型>
- 请求协议: 为了提高安全性,云控制台API的所有接口均通过HTTPS进行通信。
- 服务地址: 云控制台API的服务地址(EndPoint)包括全局服务地址和区域服务地址。全局服务地址主要提供项目管理相关接口,区域服务地址主要提供云产品和云服务管理和使用的相关接口。关于服务地址的更多说明,请参见服务地址。
- API版本: 当前云控制台API版本为v1。
- 产品与服务名称: 请参见产品与服务列表。
- 操作类型: 云控制台API根据不同的产品与服务提供了不同的操作类型,方便用户完成日常的产品与服务的管理和操作。具体的操作类型,请参见各个接口的详细接口说明。
以创建云主机为例,请求地址如下:
https://cn-east-1.api.yovole.com/v1/vm/create
1.3. 公共请求参数
在使用云控制台API发起请求时,需要提供签名信息、内容格式等公共请求参数。请参见公共请求参数。
云控制台API中,公共请求参数以HTTP头(HTTP HEADER)的形式发送给服务器。
以创建云服务器为例,请求地址和公共请求参数为:
POST https://cn-east-1.api.yovole.com/v1/vm/create HTTP/1.1
x-ycs-timestamp: 2019-06-19T14:26:26Z
x-ycs-requestid: 2a49cfa2-925b-11e9-bb3a-6c96cfdcd6b9
x-ycs-security-authorization: Authorization: YCS1-HMAC-SHA1 Credential=08e206fb-7b41-45b7-8076-8d43e8aeea89,SignedHeaders=content-type;x-ycs-requestid;x-ycs-timestamp,Signature=2RFjU7C9gICCrQfpAIfAJHqRRlQ=
1.4. 接口请求参数
接口请求参数包含了调用每个接口所需的所有信息。
接口请求参数的内容在每个API接口说明的请求参数中,以表格形式罗列说明。
云控制台API中,接口请求参数封装为JSON报文后以请求体(HTTP Body)的形式发送给服务器。
以创建云主机为例,请求参数如下:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
projectId | String | 是 | 所属项目ID |
name | String | 是 | 主机名称 |
feeType | String | 是 | 计费类型(按需计费:FEE_TYPE_NEED,包年包月:FEE_TYPE_MONTH_YEAR) |
subnetId | String | 是 | 子网ID |
securityGroupId | String | 是 | 安全组ID |
imageId | String | 是 | 镜像ID |
flavorId | String | 是 | FlavorID |
sysDiskType | String | 是 | 系统盘类型(SSD,HDD) |
sysDiskCapacity | int | 是 | 系统盘大小(G) |
loginType | String | 是 | 登录方式(密码: PASSWORD, SSH密钥: SSHKEY),系统镜像非windows时可选SSH密钥 |
password | String | 否 | 登录方式是密码时必填,密码8-30位字符,需同时包含大小写、英文、数字,不能为键盘上连续3位及以上字符,不可包含空格及以下字符# $ % & * < > |
sshKeyId | String | 否 | 登录方式是SSH密钥时必填 |
cycleCount | int | 否 | 计费类型是包年包月时必填,购买月数(1,2,3,4,5,6,7,8,9,12,24,36)个月 |
pgId | String | 否 | 安置组ID,安置组策略为集中式时,主机子网所在az与要和安置组az相匹配 |
请求体示例如下:
{
"projectId":"8a83a0966a681da5016a874df50b10ce",
"name":"API按需创建主机",
"feeType":"FEE_TYPE_NEED",
"subnetId":"98e6bf98-3283-4bed-80c8-2132a510aebb",
"securityGroupId":"eb667f7f-a0d4-4cc5-908a-e4175c683030",
"imageId":"centos-6.3-64",
"flavorId":"ecs.c1.small",
"sysDiskType":"HDD",
"sysDiskCapacity": 20,
"loginType":"PASSWORD",
"password":"XXXXXXXXXXX"
}