全部产品
Search
文档中心

日志服务:接口规范

更新时间:Oct 26, 2023

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

Request-Response原则

尽管不同语言的SDK实现有所不同,但其接口都遵循Request-Response原则,即对API的调用按照如下方式进行:

  1. 利用请求参数构建相应的Request实例。

  2. 调用SDK中的相应接口并传入上一步的Request实例。

  3. 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<String> 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<String> 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参考