客户端初始化

更新时间:

本节主要介绍客户端的 Client 初始化方式,包含RPC调用风格客户端和ROA调用风格的客户端。以及客户端初始化完成后如何发起 OpenAPI 请求。

说明

在V1.0 SDK中,由于不同阿里云产品OpenAPI支持的调用风格(RPC/ROA)存在差异,可能导致您在使用过程中产生困惑,为确保您的使用体验,建议您切换至V2.0 SDK

RPC调用风格客户端

开发者可以通过以下代码初始化 RPC 的请求客户端并进行请求,下述示例描述的是调用云服务器ECS 2014-05-26版本的DescribeInstances接口,其它接口示例代码也可通过OpenAPI获取。

const RPCClient = require('@alicloud/pop-core').RPCClient;

const client = new RPCClient({
    accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
    accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
    endpoint: 'https://ecs.cn-beijing.aliyuncs.com', 
    apiVersion: '2014-05-26', 
});
const params = {};
const action = 'DescribeInstances';

// 调用方式1:=> returns Promise
// client.request(action, params).then((result)=>{
//     console.log(JSON.stringify(result));
// });

// 调用方式2:options
client.request(action, params, {
    timeout: 3000, // default 3000 ms
    formatAction: true, // default true, format the action to Action
    formatParams: true, // default true, format the parameter name to first letter upper case
    method: 'GET', // set the http method, default is GET
    headers: {}, // set the http request headers
}).then( (response) => {
    console.log(JSON.stringify(response));
});

ROA调用风格客户端

开发者可以通过以下代码初始化 ROA 的请求客户端并进行请求,下述示例描述的是调用容器服务Kubernetes2015-12-15的DescribeClustersV1接口,其它接口示例代码也可通过OpenAPI获取。

const ROAClient = require('@alicloud/pop-core').ROAClient;

const roaClient = new ROAClient({
    accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
    accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
    endpoint: 'https://cs.cn-beijing.aliyuncs.com', 
    apiVersion: '2015-12-15', 
});

const method = "GET" // 请求方式
const uriPattern = '/api/v1/clusters'; // 路径参数
const queryParams = {}; // 查询参数
const body = ""; // 请求体
const headers = {
    "Content-Type": "application/json"
}; // 自定义请求头
const options = {
    timeout: 3000, // default 3000 ms
};

roaClient.request(method, uriPattern, queryParams, body, headers, options)
    .then((response) => {
        console.log('ROA Response:', response);
    })
    .catch((error) => {
        console.error('ROA Error:', error);
    });