本文介绍SDK接口需要遵循的原则。

Request-Response原则

尽管不同语言的SDK实现有所不同,但其接口都遵循Request-Response原则,即对API的调用按照如下方式进行:
  1. 利用请求参数构建相应的Request实例。
  2. 调用SDK中的相应接口并传入上一步的Request实例。
  3. SDK接口的返回结果以相应的Response实例返回给用户。

示例

以下代码片段展示了如何获取一个Project下的所有Logstore的名称。
  • Java
    // 其他代码。
    String accessId = "your_access_id";     //用您的真实阿里云AccessKeyId替代。
    String accessKey = "your_access_key";   //用您的真实阿里云AccessKeySecret替代。
    String project = "your_project";        //用您的真实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#)
    // 其他代码。
    String accessId = "your_access_id";     //用您的真实阿里云AccessKeyId替代。
    String accessKey = "your_access_key";   //用您的真实阿里云AccessKeySecret替代。
    String project = "your_project";        //用您的真实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
    // 其他代码。
    $accessId = "your_access_id";     //用您的真实阿里云AccessKeyId替代。
    $accessKey = "your_access_key";   //用您的真实阿里云AccessKeySecret替代。
    $project = "your_project";        //用您的真实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
    // 其他代码。
    accessId = 'your_access_id';     //用您的真实阿里云AccessKeyId替代。
    accessKey = 'your_access_key';   //用您的真实阿里云AccessKeySecret替代。
    project = 'your_project';        //用您的真实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参考