本文介绍SDK接口需要遵循的原则。
Request-Response原则
尽管不同语言的SDK实现有所不同,但其接口都遵循Request-Response原则,即对API的调用按照如下方式进行:
- 利用请求参数构建相应的Request实例。
- 调用SDK中的相应接口并传入上一步的Request实例。
- SDK接口的返回结果以相应的Response实例返回给用户。
示例
以下代码片段展示了如何获取一个Project下的所有Logstore的名称。
- Java
// 其他代码。 // 阿里云访问密钥AccessKey。更多信息,请参见访问密钥。阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维。 String accessId = "your_access_id"; String accessKey = "your_access_key"; // 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(); // 其他代码。
- .NET(C#)
// 其他代码。 // 阿里云访问密钥AccessKey。更多信息,请参见访问密钥。阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维。 String accessId = "your_access_id"; String accessKey = "your_access_key"; // 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; // 其他代码。
- PHP
// 其他代码。 // 阿里云访问密钥AccessKey。更多信息,请参见访问密钥。阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维。 $accessId = "your_access_id"; $accessKey = "your_access_key"; // 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(); // 其他代码。
- Python
# 其他代码。 # 阿里云访问密钥AccessKey。更多信息,请参见访问密钥。阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维。 accessId = 'your_access_id'; accessKey = 'your_access_key'; # 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及解析最终Reponse内容。这类接口的细节请参见SDK参考。