MongoDB 公开API目录

API概览

MongoDB产品提供以下相关API接口。

实例

API 描述
DescribeZones 获取云数据库MongoDB支持的站点区域
DescribeSpecInfo 获取某个站点支持的MongoDB产品类型以及规格
CreateDBInstance 创建MongoDB云数据库实例
DescribeDBInstances 获取MongoDB实例列表
DeleteDBInstance 删除MongoDB实例

错误码

HttpCode 错误码 描述
400 ArgMissing 缺少参数错误
400 InvalidParameter 参数错误
400 BadArgs 参数错误
400 UnsupportedOperation 操作不支持
404 ResourceNotFound 资源不存在
409 ResourceInUse 资源正在被其他任务占用,操作冲突
500 InternalError 内部错误
500 CreateOrderExcept 创建订单异常

访问地址

地区 访问地址
中国大陆 cdsapi.capitalonline.net
亚太地区 cdsapi-asia.capitalonline.net
欧美地区 cdsapi-us.capitalonline.net

1.DescribeZones

Action: DescribeZones

描述: 获取云数据库MongoDB支持的站点区域

请求地址: cdsapi.capitalonline.net/mongodb/v1

请求方法: GET

请求参数:

请求示例:

  1. def get_mongodb_Zones():
  2. """
  3. 获取云数据库Mongodb支持的站点区域
  4. """
  5. action = "DescribeZones"
  6. method = "GET"
  7. param = {
  8. }
  9. url = get_signature(action, AK, AccessKeySecret, method, MONGODB_URL, param)
  10. res = requests.get(url)
  11. result = json.loads(res.content)
  12. result = json.dumps(result) # json格式化
  13. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": [{
  4. "CityId": "3082f45e-306e-11e7-9796-0050569b4d9c",
  5. "CityName": "洛杉矶",
  6. "IsSaling": 1,
  7. "RegionId": "US_LosAngeles_A",
  8. "RegionName": "北美地区",
  9. "SiteName": "洛杉矶1"
  10. }, {
  11. "CityId": "7b98a5d1-306e-11e7-9796-0050569b4d9c",
  12. "CityName": "法兰克福",
  13. "IsSaling": 1,
  14. "RegionId": "EUR_Germany_A",
  15. "RegionName": "欧洲地区",
  16. "SiteName": "德国1"
  17. }, {
  18. "CityId": "8737606f-306d-11e7-9796-0050569b4d9c",
  19. "CityName": "东京",
  20. "IsSaling": 1,
  21. "RegionId": "APAC_Tokyo_A",
  22. "RegionName": "亚太地区",
  23. "SiteName": "东京1"
  24. }, {
  25. "CityId": "27b57297-306d-11e7-9796-0050569b4d9c",
  26. "CityName": "香港",
  27. "IsSaling": 1,
  28. "RegionId": "CN_Hongkong_A",
  29. "RegionName": "亚太地区",
  30. "SiteName": "香港1"
  31. }, {
  32. "CityId": "a8937b00-306d-11e7-9796-0050569b4d9c",
  33. "CityName": "新加坡",
  34. "IsSaling": 1,
  35. "RegionId": "APAC_Singapore_A",
  36. "RegionName": "亚太地区",
  37. "SiteName": "新加坡1"
  38. }, {
  39. "CityId": "154ed19e-306e-11e7-9796-0050569b4d9c",
  40. "CityName": "纽约",
  41. "IsSaling": 1,
  42. "RegionId": "US_NewYork_A",
  43. "RegionName": "北美地区",
  44. "SiteName": "纽约1"
  45. }, {
  46. "CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
  47. "CityName": "北京",
  48. "IsSaling": 1,
  49. "RegionId": "CN_Beijing_E",
  50. "RegionName": "中国大陆",
  51. "SiteName": "北京5"
  52. }, {
  53. "CityId": "e48e2312-306d-11e7-9796-0050569b4d9c",
  54. "CityName": "达拉斯",
  55. "IsSaling": 1,
  56. "RegionId": "US_Dallas_A",
  57. "RegionName": "北美地区",
  58. "SiteName": "达拉斯1"
  59. }, {
  60. "CityId": "713d3745-306d-11e7-9796-0050569b4d9c",
  61. "CityName": "台北",
  62. "IsSaling": 1,
  63. "RegionId": "CN_Taipei_A",
  64. "RegionName": "亚太地区",
  65. "SiteName": "台北1"
  66. }, {
  67. "CityId": "c11a5abe-3f7e-11e7-86b1-0242ac11000e",
  68. "CityName": "广州",
  69. "IsSaling": 1,
  70. "RegionId": "CN_Guangzhou_A",
  71. "RegionName": "中国大陆",
  72. "SiteName": "广州1"
  73. }],
  74. "Message": "Success."
  75. }

返回参数说明:

参数名 类型 说明
Code string 状态码
Data dict 数据
CityId string 城市编号
CityName string 城市名称
IsSaling int 站点是否能购买服务,1:站点支持购买;0:资源不足以下线
RegionId string 区域编号
RegionName string 区域名称
SiteName string 站点名称
Message string 信息描述

2.DescribeSpecInfo

Action: DescribeSpecInfo

描述: 获取某个站点支持的MongoDB产品类型以及规格

请求地址: cdsapi.capitalonline.net/mongodb/v1

请求方法: GET

请求参数:

参数名 必选 类型 说明
RegionId string 站点编号

请求示例:

  1. def get_mongodb_spec_info(RegionId):
  2. """
  3. 获取某个站点支持的Mongodb产品类型以及规格
  4. :param RegionId:
  5. """
  6. action = "DescribeSpecInfo"
  7. method = "GET"
  8. param = {
  9. "RegionId": RegionId
  10. }
  11. url = get_signature(action, AK, AccessKeySecret, method, MONGODB_URL, param)
  12. res = requests.get(url)
  13. result = json.loads(res.content)
  14. result = json.dumps(result) # json格式化
  15. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {
  4. "ProductName": "mongodb",
  5. "Products": [{
  6. "Architectures": [{
  7. "ArchitectureName": "副本集",
  8. "ComputeRoles": [{
  9. "ComputeName": "高性能型",
  10. "Standards": {
  11. "AttachDisk": [{
  12. "BasicIops": "3000",
  13. "DiskMax": 2000,
  14. "DiskMaxExpand": 2000,
  15. "DiskMin": 100,
  16. "DiskName": "性能型",
  17. "DiskStep": 100,
  18. "DiskUnit": "G",
  19. "DiskValue": "high_disk"
  20. }],
  21. "CpuRam": [{
  22. "CPU": 1,
  23. "Name": "1C2G",
  24. "PaasGoodsId": 7292,
  25. "RAM": 2
  26. }, {
  27. "CPU": 2,
  28. "Name": "2C4G",
  29. "PaasGoodsId": 7295,
  30. "RAM": 4
  31. }, {
  32. "CPU": 4,
  33. "Name": "4C8G",
  34. "PaasGoodsId": 7298,
  35. "RAM": 8
  36. }, {
  37. "CPU": 8,
  38. "Name": "8C16G",
  39. "PaasGoodsId": 7301,
  40. "RAM": 16
  41. }, {
  42. "CPU": 8,
  43. "Name": "8C32G",
  44. "PaasGoodsId": 7307,
  45. "RAM": 32
  46. }, {
  47. "CPU": 8,
  48. "Name": "8C24G",
  49. "PaasGoodsId": 7304,
  50. "RAM": 24
  51. }]
  52. }
  53. }],
  54. "EnginesType": ["WiredTiger"],
  55. "NetworkLinks": [{
  56. "DescDetail": "默认链路:服务实例占用VDC私有网络IP地址,适用于对延迟敏感类型的应用。",
  57. "LinkType": "default_link",
  58. "Name": "默认链路",
  59. "SplitRwSwitch": 1
  60. }],
  61. "SubProductName": "MongoDB 副本集版"
  62. }],
  63. "Version": "3.4.21"
  64. }],
  65. "RegionId": "CN_Hongkong_A"
  66. },
  67. "Message": "Success.",
  68. "TaskId": ""
  69. }

返回参数说明:

参数名 类型 说明
Message string 信息描述
Code string 状态码
TaskId string 任务Id
Data dict 数据
Products list 该类产品支持的产品列表
ProductName string 产品名称
SubProductName string 子产品名称
Version string 产品支持的版本
Architectures string 产品支持的架构
ArchitectureName string 架构名称
NetworkLinks list 此架构支持的链路类型
DescDetail string 链路类型描述
LinkType string 链路类型“英文”
Name string 链路类型“中文”
ComputeRoles list 支持的计算类型,不同的计算类型支持不同规格,并支持添加不同类型的硬盘
Standards dict 该类型支持的规格
CpuRam list 支持的规格列表
CPU int 规格CPU大小
RAM int 规格RAM大小
Name string 规格名称
PaasGoodsId int 具体的产品编号,根据产品编号确定购买哪一种规格
AttachDisk list 该类型规格能够添加的磁盘类型列表
DiskMax int 单次支持最大规格的磁盘
DiskValue string 磁盘类型,用于创建服务实例指定磁盘类型 (创建服务时候使用)
BasicIops string 基础的磁盘的iops
DiskUnit string 磁盘规格单位
DiskName string 磁盘类型名称
DiskMaxExpand string 磁盘最大可扩容大小
DiskMin string 磁盘最小大小
DiskStep string 磁盘扩容大小
EnginesType string 引擎类型

3.CreateDBInstance

Action: CreateDBInstance

描述: 创建MongoDB云数据库实例

请求地址: cdsapi.capitalonline.net/mongodb/v1

请求方法: POST

请求参数:

参数名 必选 类型 说明
RegionId string 站点编号
VdcId string 数据中心的编号
BasePipeId string 数据中心的私网编号,创建服务将按这个私网分配id
InstanceName string 实例名称
PaasGoodsId int 产品的规格编号,注意:对比旧版使用Integer类型
DiskType string 磁盘类型
DiskValue int 磁盘大小
Password string Mongodb 最高权限数据库密码
Version string 实例的版本,默认4.0.3,参数范围[“4.0.3”,”3.6.7”,”3.2.21”]

请求示例:

  1. def create_mongodb():
  2. """
  3. 创建MongoDB实例
  4. """
  5. action = "CreateDBInstance"
  6. method = "POST"
  7. param = {}
  8. url = get_signature(action, AK, AccessKeySecret, method, MONGODB_URL, param=param)
  9. body = {
  10. "RegionId": "******",
  11. "VdcId": "*******",
  12. "BasePipeId": "******",
  13. "InstanceName": "******",
  14. "PaasGoodsId": "******",
  15. "DiskType": "high_disk",
  16. "DiskValue": 100,
  17. "Version":"4.0.3",
  18. "Password": "******",
  19. }
  20. res = requests.post(url, json=body)
  21. result = json.loads(res.content)
  22. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {
  4. "InstanceUuid":"****************"
  5. },
  6. "Message": "Success.",
  7. "TaskId": ""
  8. }

返回参数说明:

参数名 类型 说明
Code string 状态码
Data dict 数据
InstanceUuid string 实例的编码
Message string 信息描述
TaskId string 任务id

4.DescribeDBInstances

Action: DescribeDBInstances

描述: 获取MongoDB实例列表(支持常见字段过滤:实例编号、实例名称、实例IP)

请求地址: cdsapi.capitalonline.net/mongodb/v1

请求方法: GET

请求参数:

参数名 必选 类型 说明
InstanceUuid string 要过滤的实例编号
InstanceName string 要过滤的实例名称
IP string 要过滤的实例ip

请求示例:

  1. def get_mongodb_instances_list():
  2. """
  3. 获取Mongodb实例列表(可根据ip、instance_uuid、instance_name过滤)
  4. """
  5. action = "DescribeDBInstances"
  6. method = "GET"
  7. param = {
  8. "IP": "66.66"
  9. }
  10. url = get_signature(action, AK, AccessKeySecret, method, MONGODB_URL, param)
  11. res = requests.get(url)
  12. result = json.loads(res.content)
  13. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": [{
  4. "CloneServices": null,
  5. "DisplayName": "亚太地区-香港-可用区A",
  6. "IP": "66.66.0.44",
  7. "InstanceName": "test-mongodb",
  8. "InstanceUuid": "9a5a796c-78ab-4b1c-88a4-ba9d9e8c996b",
  9. "LinkType": "default_link",
  10. "LinkTypeStr": "默认链路",
  11. "MasterInfo": "",
  12. "Port": 27017,
  13. "Ram": 2048,
  14. "RegionId": "CN_Hongkong_A",
  15. "RelationService": null,
  16. "ResourceId": "71bf731e-7cc8-4307-8408-4952e4dcd470",
  17. "Status": "RUNNING",
  18. "StatusStr": "运行中",
  19. "SubProductName": "MongoDB 副本集版",
  20. "VdcId": "d459c74b-d60e-4f28-adbb-67be402f76f3",
  21. "VdcName": "香港PaaS",
  22. "Version": "4.0.3"
  23. }],
  24. "Message": "Success."
  25. }

返回参数说明:

参数名 类型 说明
Code string 状态码
Data dict 数据
CloneServices list 克隆的临时实例列表
DisplayName string 可用区
IP string 数据库的连接的IP
InstanceName string 实例名称
InstanceUuid string 实例编号
LinkType string 链路类型名称
LinkTypeStr string 链路类型名称对应中文
MasterInfo dict 从属集群,只读服务会有值
Port int 连接的端口
Ram int 内存 单位M
RegionId string 站点编号
RelationService dict 相关联的服务实例
Status string 实例状态
StatusStr string 状态对应的中文
SubProductName string 子产品的名字
VdcId string 数据中心的编号
VdcName string 数据中心名称
Version string 服务版本
Message string 信息描述

5.DeleteDBInstance

Action: DeleteDBInstance

描述: 删除MongoDB实例

请求地址: cdsapi.capitalonline.net/mongodb/v1

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号

请求示例:

  1. def delete_mongodb(instance_uuid, ):
  2. """
  3. 删除MongoDB实例
  4. :param instance_uuid:
  5. """
  6. action = "DeleteDBInstance"
  7. method = "POST"
  8. param = {}
  9. url = get_signature(action, AK, AccessKeySecret, method, MONGODB_URL, param=param)
  10. body = {
  11. "InstanceUuid": instance_uuid,
  12. }
  13. res = requests.post(url, json=body)
  14. result = json.loads(res.content)
  15. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {},
  4. "Message": "Success.",
  5. "TaskId": "***************"
  6. }

返回参数说明:

参数名 类型 说明
Code string 状态码
Data dict 数据
Message string 信息描述
TaskId string 任务编号