推荐的使用方式
更新时间:2023-12-18
一、概述
百度智能云 CDN 提供的 SDK 有两种使用方式:
- 一种是常规的官方定期更新 SDK 新接口功能,通过 SDK 调用接口功能的方式和官方提供的 CDN API 文档是相互独立的,您在使用 SDK 的时候,只能查阅参考 SDK 文档说明,无法直接参考 CDN API 文档。
-
另一种是基于 SDK 的通用鉴权和请求方法来自助封装接口,这种方式和官方提供的 CDN API 文档是完全一致的,使用时直接参考 CDN API 文档即可。
- 只要掌握了通用鉴权和请求方法,您就不再需要依赖官方 SDK 的定期更新,而是可以根据现有的 SDK 鉴权请求方法 和 CDN API 接口文档,自助完成所有 API 接口的功能集成。这样,您就可以高效及时地打通全部 CDN API 接口功能。这也是我们推荐的使用方式。
- 该使用方式可用于所有产品,除了 CDN,您在集成其他产品的 API 接口时,也可以采用此方式。
二、推荐使用方式的示例说明
1、安装 SDK 工具包
详见:安装 SDK 工具包
2、典型示例
以接口 查询用户名下所有域名 为例
- 1)请求的示例代码
Plain Text
1package baidu.com;
2
3import java.util.HashMap;
4import java.util.Iterator;
5import java.util.Map.Entry;
6
7import org.apache.commons.lang3.StringUtils;
8
9import com.baidubce.http.ApiExplorerClient;
10import com.baidubce.model.ApiExplorerRequest;
11import com.baidubce.http.HttpMethodName;
12import com.baidubce.model.ApiExplorerResponse;
13import com.baidubce.util.JsonUtils;
14
15/**
16 * 需要添加依赖
17 * <dependency>
18 * <groupId>com.baidubce</groupId>
19 * <artifactId>api-explorer-sdk</artifactId>
20 * <version>1.0.3.1</version>
21 * </dependency>
22 */
23
24public class Sample {
25 public static void main(String[] args){
26
27 // Access Key
28 String ak = "your Access Key";
29 // Secret Key
30 String sk = "your Secret Key";
31 String path = "https://cdn.baidubce.com/v2/user/domains";
32 String headerJson = "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}";
33 String queryJson = "{\"status\":\"ALL\",\"rule\":\"666.baidu.com\"}";
34 String jsonBody = "";
35
36 ApiExplorerRequest request = new ApiExplorerRequest(HttpMethodName.GET, path);
37 // 设置鉴权信息
38 request.setCredentials(ak, sk);
39 // 设置header参数
40 HashMap<String, String> headerJsonMap = JsonUtils.fromJsonString(headerJson, HashMap.class);
41 Iterator<Entry<String, String>> headerIterator = headerJsonMap.entrySet().iterator();
42 while (headerIterator.hasNext()) {
43 Entry<String, String> next = headerIterator.next();
44 request.addHeaderParameter(next.getKey(), next.getValue());
45 }
46 // 设置query参数
47 if(StringUtils.isNotEmpty(queryJson)){
48 HashMap<String, String> QueryJsonMap = JsonUtils.fromJsonString(queryJson, HashMap.class);
49 Iterator<Entry<String, String>> queryIterator = QueryJsonMap.entrySet().iterator();
50 while (queryIterator.hasNext()) {
51 Entry<String, String> next = queryIterator.next();
52 request.addQueryParameter(next.getKey(), next.getValue());
53 }
54 }
55 // 设置jsonBody参数
56 if (StringUtils.isNotEmpty(jsonBody)) {
57 request.setJsonBody(jsonBody);
58 }
59 ApiExplorerClient client = new ApiExplorerClient();
60 try {
61 ApiExplorerResponse response = client.sendRequest(request);
62 // 返回结果格式为Json字符串
63 System.out.println(response.getResult());
64 } catch (Exception e) {
65 e.printStackTrace();
66 }
67 }
68}
其中,path、params、headers、请求方法 "GET" 都可以从上面的接口文档 查询用户名下所有域名 中找到对应的说明;your Access Key 和 your Secret Key 是您有调用权限的主用户或子用户所分配到的的 AK、SK,可参考 如何获取 AK/SK。
- 2)请求的响应内容示例
从响应内容中可提取所查询的 domains 信息,如下:
Plain Text
1{
2 "domains": [
3 {
4 "domain": "api--2create-666.baidu.com",
5 "status": "RUNNING"
6 },
7 {
8 "domain": "api--create-666.baidu.com",
9 "status": "STOPPED"
10 },
11 {
12 "domain": "api-create-666.baidu.com",
13 "status": "STOPPED"
14 },
15 {
16 "domain": "console-create-666.baidu.com",
17 "status": "RUNNING"
18 }
19 ]
20}
3、在线调试(示例代码中心)
百度智能云也提供了在线调试的入口:示例代码中心 - 内容分发网络 CDN,在获取 AK、SK 后,您可以在此入口进行在线测试,快捷地验证接口功能。