You need to enable JavaScript to run this app.
导航
OpenAPI 调用说明
最近更新时间:2024.05.09 19:48:44首次发布时间:2021.10.18 18:27:22

本文介绍了调用云手机-iPaaS服务端 OpenAPI 的方法,对于具体 OpenAPI 的调用方法,请参考具体的接口说明文档。

前提条件

  1. 通过火山引擎云手机控制台注册帐号,获取账号的 Access Key ID 和 Secret Access Key (AK/SK),用于 API 请求鉴权。详细步骤,参考 API 访问密钥使用指南
  2. 开通云手机服务,并确保使用的账号具有对应资源的访问权限。

请求结构

调用云手机服务端 OpenAPI 接口时,是通过向指定服务地址发送请求,并需满足签名信息和具体接口的业务信息来完成的。API 的请求需要包含服务地址、请求方式、请求参数等信息。接口调用成功后,对返回结果进行解析。

以获取实例列表接口为例,一条未编码的URL请求示例如下:

https://open.volcengineapi.com?Action=ListInstance
&Version=2020-10-25
&<通过header传入的公共请求参数>
&<请求体>

说明如下:

参数/结构说明
https://open.volcengineapi.com请求的通信协议和服务接入地址
Action指定要调用的 API 接口(示例中的 ListInstance 为查询实例列表接口)
Version接口的版本号(云手机-iPaaS OpenAPI 的接口版本号固定为 2020-10-252023-08-01,具体参考接口说明)

通过header传入的公共请求参数

系统规定的公共参数,主要包括以下参数:

  • AccessKey:用于 API 请求鉴权的密钥(参考 API 访问密钥使用指南 获取)

  • Authorization:用于 API 请求的鉴权(参考 签名机制

  • ServiceName:OpenAPI 服务名称(云手机-iPaaS OpenAPI 的服务名称固定为 iPaaS

  • Region:OpenAPI 服务所在区域(云手机-iPaaS OpenAPI 的服务区域固定为 cn-north-1

请求体调用 OpenAPI 接口需要的业务参数

服务地址

云手机 OpenAPI 的服务接入地址如下:

服务地域域名备注
国内https://open.volcengineapi.com火山引擎

通信协议

云手机提供的所有接口均通过 HTTPS 进行通信,提供高安全性的通信通道。

请求方式

根据各个接口的具体需求,选择 GET 或 POST 方式发起请求。

请求参数

在发起请求时,请求体中可能会包含两类参数:公共请求参数和接口特有的业务参数。

  • 公共请求参数是每一个接口需要包含的,具体可参见公共请求参数小节。
  • 接口特有的业务参数是各个接口特有的,详见各个接口的描述。

字符编码

请求及返回结果使用 UTF-8 的字符集进行编码。

公共请求参数

公共请求参数是每个接口都需要使用的请求参数,在发送请求时都需要携带这些公共请求参数,否则会导致请求失败。公共请求参数首字母均为大写,以此区分接口特有的请求参数。

调用云手机服务 OpenAPI 需要的公共请求参数如下:

名称位置类型是否必填描述示例值
ActionQueryString接口名称,与具体的接口相关,表示要执行的操作ListInstance
VersionQueryString接口版本固定值:2020-10-25
RegionHeaderString服务区域固定值:cn-north-1
ServiceHeaderString服务名称固定值:iPaaS
X-DateHeaderString发送请求的时间戳20201103T104027Z, 使用UTC时间,精确到秒

Authorization

Header

String

发送的请求中包含的签名

HMAC-SHA256 Credential={AccessKey}/{ShortDate}/{Region}/{Service}/request, SignedHeaders={SignedHeaders}, Signature={Signature}
关于签名参数的生成方法,参考火山引擎 OpenAPI 公共参数的详细说明

Content-TypeHeaderString资源的 MIME 类型application/x-www-form-urlencoded; charset=utf-8

有关火山引擎 OpenAPI 公共参数的详细说明,请参考 公共参数

签名机制

对于每一次 HTTPS 协议请求,会根据访问中的签名信息验证访问请求者的身份。具体由用户的火山引擎账号对应的 AccessKey ID 和 AccessKey Secret(AK/SK)对称加密验证实现。

具体的签名机制和方法,参考火山引擎 OpenAPI 签名方法

返回结果

API 请求可返回以下结果:

字段
类型
是否一定返回
说明
ResponseMetadataObject响应元数据;需通过解析该结构体,判断响应结果,参考以下 ResponseMetadata 结构说明
ResultAny响应数据;调用成功时返回

ResponseMetadata 结构说明

字段
类型
是否一定返回
说明
RequestIdString请求 ID
ActionStringOpenAPI 接口名称
VersionStringOpenAPI 接口版本
ServiceStringOpenAPI 服务名称
RegionString服务所在地域信息
ErrorObject错误信息;调用失败时返回,参考以下 Error 结构说明

Error 结构说明

字段
类型
是否一定返回
说明
CodeNInt64状态码
CodeString状态消息
MessageString具体的错误描述信息

返回结果示例

调用成功

{
    "ResponseMetadata": {
        "Action": "ListInstance",
        "Region": "cn-north-1",
        "RequestId": "20230801174209515C65A8A83C37019069",
        "Service": "iPaaS",
        "Version": "2020-10-25"
    },
    "Result": {
        "row": [
            {
                "product_id": "1669567870972xxxxxx",
                "instance_id": "i-1771998361xxxxxx",
                "instance_name": "i-1771998361xxxxxx",
                "host_id": "h-1771998361xxxxxx",
                "sn": "i-1771998361xxxxxx",
                "region": "cn-north",
                "isp": 7,
                "dc": "xxxx-ctcucm-02",
                "dc_name": "机房02(IPv4)",
                "status": 256,
                "status_str": "Running",
                "configuration": {
                    "configuration_code": "CloudHost_XXXXXX_4c6g_monthly",
                    "configuration_name": "加强型(升级版)",
                    "cpu_core": 4,
                    "memory": 6144
                },
                "image_id": "img-6559xxxx",
                "create_at": 1692275509
            },
            {
                "product_id": "1669567870972xxxxxx",
                "instance_id": "i-1771998361xxxxxx",
                "instance_name": "i-1771998361xxxxxx",
                "host_id": "h-1771998361xxxxxx",
                "sn": "i-1771998361xxxxxx",
                "region": "cn-north",
                "isp": 7,
                "dc": "xxxx-ctcucm-02",
                "dc_name": "机房02(IPv4)",
                "status": 256,
                "status_str": "Running",
                "configuration": {
                    "configuration_code": "CloudHost_XXXXXX_4c6g_monthly",
                    "configuration_name": "加强型(升级版)",
                    "cpu_core": 4,
                    "memory": 6144
                },
                "image_id": "img-6559xxxx",
                "create_at": 1692278530
            }
        ],
        "total": 2
    }
}

调用失败

{
    "ResponseMetadata": {
        "Action": "ListInstance",
        "Error": {
            "Code": "[ListInstance] error: product_id is empty",
            "CodeN": 200000,
            "Message": "[ListInstance] error: product_id is empty"
        },
        "Region": "cn-north-1",
        "RequestId": "02162735832694600000000000000000000ffff0aca5d1d6ae229",
        "Service": "iPaaS",
        "Version": "2020-10-25"
    }
}