本文介绍SDK接口需要遵循的原则。
Request-Response原则
尽管不同语言的SDK实现有所不同,但其接口都遵循Request-Response原则,即对API的调用按照如下方式进行:
-
利用请求参数构建相应的Request实例。
-
调用SDK中的相应接口并传入上一步的Request实例。
-
SDK接口的返回结果以相应的Response实例返回给用户。
示例
以下代码片段展示了如何获取一个Project下的所有Logstore的名称。
-
Java
// 其他代码。 // 本示例从环境变量中获取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 names = res.GetLogStores(); // 其他代码。
-
.NET(C#)
// 其他代码。 // 本示例从环境变量中获取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 names = res.Logstores; // 其他代码。
-
PHP
// 其他代码。 // 本示例从环境变量中获取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(); // 其他代码。
-
Python
# 其他代码。 # 本示例从环境变量中获取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参考。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/160346.html