SDK 客户端的初始化和请求方式
本节主要介绍升级版 SDK 对于客户端的初始化以及 OpenAPI 请求方式。
SDK 客户端初始化
升级版 SDK 中因为具备完整的参数处理、返回值处理以及请求逻辑,所以可以给不同云产品的 SDK 生成不同的 Client 并包含其产品下所有的 OpenAPI 请求方法,可以使不同云产品之间的身份及鉴权信息隔离,使用上更加安全,下面是产品 ECS 的升级版 SDK 初始化示例:
public static void Main(string[] args)
{
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
{
// 您的AccessKey ID
AccessKeyId = accessKeyId,
// 您的AccessKey Secret
AccessKeySecret = accessKeySecret,
};
// 也可以直接设置 endpoint 指定请求地址,对于开发者而言更好理解
// config.Endpoint = "ecs-cn-hangzhou.aliyuncs.com";
AlibabaCloud.SDK.Ecs20140526.Client client = new AlibabaCloud.SDK.Ecs20140526.Client(config);
}
OpenAPI 请求方式
升级版 SDK 中每个产品的 Client 包含了所有的 OpenAPI,所以可以指定 OpenAPI 请求方法来请求,其方法名对应 OpenAPI 名称:
可以不用传入运行参数的请求方法。
public static void Main(string[] args)
{
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
{
// 您的AccessKey ID
AccessKeyId = accessKeyId,
// 您的AccessKey Secret
AccessKeySecret = accessKeySecret,
};
// 也可以直接设置 endpoint 指定请求地址,对于开发者而言更好理解
// config.Endpoint = "ecs-cn-hangzhou.aliyuncs.com";
AlibabaCloud.SDK.Ecs20140526.Client client = new AlibabaCloud.SDK.Ecs20140526.Client(config);
DescribeInstancesRequest request = new DescribeInstancesRequest();
// 通过 SDK Core 执行实际的 Http 请求将返回的结果序列化为 SDK 的 Response 结构
var response = client.DescribeInstances(request);
System.Console.WriteLine(response.Body.TotalCount);
}
需要传入运行参数的请求方法。
public static void Main(string[] args)
{
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
{
// 您的AccessKey ID
AccessKeyId = accessKeyId,
// 您的AccessKey Secret
AccessKeySecret = accessKeySecret,
};
// 也可以直接设置 endpoint 指定请求地址,对于开发者而言更好理解
// config.Endpoint = "ecs-cn-hangzhou.aliyuncs.com";
AlibabaCloud.SDK.Ecs20140526.Client client = new AlibabaCloud.SDK.Ecs20140526.Client(config);
RuntimeOptions runtimeOptions = new RuntimeOptions();
DescribeInstancesRequest request = new DescribeInstancesRequest();
// 通过 SDK Core 执行实际的 Http 请求将返回的结果序列化为 SDK 的 Response 结构
var response = client.DescribeInstancesWithOptions(request, runtimeOptions);
System.Console.WriteLine(response.Body.TotalCount);
}
说明
每个接口 API 都有独立的 Request ,命名方式为 ${API}${Request} ,例如 DescribeInstancesRequest。Response 亦如此。