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

Request-Response原则

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