本文介绍SDK接口需要遵循的原则。
Request-Response原则
尽管不同语言的SDK实现有所不同,但其接口都遵循Request-Response原则,即对API的调用按照如下方式进行:
利用请求参数构建相应的Request实例。
调用SDK中的相应接口并传入上一步的Request实例。
SDK接口的返回结果以相应的Response实例返回给用户。
示例
以下代码片段展示了如何获取一个Project下的所有Logstore的名称。
// 其他代码。
// 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
// Project名称。
String project = "your_project";
// 日志服务的服务接入点。
String endpoint = "region_endpoint";
// 构建一个Client实例。
Client client = new Client(endpoint, accessId, accessKey);
// 用请求参数project初始化ListLogstores的请求类。
ListLogStoresRequest lsRequest = new ListLogStoresRequest(project, 0,100, "");
// 使用request实例调用ListLogstores接口,且返回参数为对应的Response实例。
ListLogStoresResponse res = client.ListLogStores(lsRequest);
// 访问Response实例获取请求结果。
ArrayList<String> names = res.GetLogStores();
// 其他代码。
// 其他代码。
// 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
String accessId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
// Project名称。
String project = "your_project";
// 日志服务的服务接入点。
String endpoint = "region_endpoint";
// 构建一个Client实例。
SLSClient client = new SLSClient(endpoint, accessId, accessKey);
// 用请求参数project初始化ListLogstores的请求类。
ListLogStoresRequest lsRequest = new ListLogStoresRequest();
lsRequest.Project = project;
// 使用request实例调用ListLogstores接口,且返回参数为对应的Response实例。
ListLogStoresResponse res = client.ListLogStores(lsRequest);
// 访问Response实例获取请求结果。
List<String> names = res.Logstores;
// 其他代码。
// 其他代码。
// 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
$accessId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
$accessKey = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');
// Project名称。
$project = "your_project";
// 日志服务的接入点。
$endpoint = "region_endpoint";
// 构建一个Client实例。
$client = new Aliyun_Sls_Client($endpoint, $accessId, $accessKey);
// 用请求参数project初始化ListLogstores的请求类。
$request = new Aliyun_Sls_Models_ListLogstoresRequest($project);
// 使用request实例调用ListLogstores接口,且返回参数为对应Response实例。
$response = $client->listLogstores($request);
// 访问Response实例获取请求结果。
$names = $response->getLogstores();
// 其他代码。
# 其他代码。
# 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
accessId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '');
accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '');
# Project名称。
project = 'your_project';
# 日志服务的服务接入点。
endpoint = 'region_endpoint';
# 构建一个Client。
client = LogClient(endpoint, accessId, accessKey)
# 用请求参数project初始化ListLogstores的请求类。
lsRequest = ListLogstoresRequest(project)
# 使用request实例调用ListLogstores接口,且返回参数为对应的Response实例。
res = client.list_logstores(lsRequest)
# 访问Response实例获取请求结果。
names = res.get_logstores();
# 其他代码。
SDK实现了多组类似ListLogStores的接口,也定义了相应的Request和Response类。除去Request-Response风格的基础接口外,各个不同语言的SDK还会提供一些包装了这些基础接口的辅助接口,使您无需自己构建Request及解析最终Response内容。更多信息,请参见SDK参考。