使用 HTTP-SDK 如何调用 Console API?
使用命令行调用 使用代码调用 使用 HTTP-Client SDK 可以对 CSB 控制台的 OpenAPI 进行调用,帮助您完成开发和运维操作。 前提条件 下载 HTTP-SDK。 1.1.4.0(最新) 1.0.4.2 plus 按照 OpenAPI 的文档了解该 API 的调用地址、请求参数、请求方式(POST/GET)和返回值的结构。 确定要调用 API 的安全 Key 信息,即管理员用户创建凭证的一对有效的 Access Key ID 和 Access Key Secret。 背景信息 HTTP-SDK 介绍和使用方式请参见 SDK 参考。使用 HTTP-SDK 调用 Console API 有命令行和代码两种方式。 使用命令行调用 命令行方式通常用来测试或临时调用 OpenAPI。 命令行参数说明:
#java -jar http-client-1.1.5.7.jar usage: java -jar http-client.jar [options...] -method 请求类型, 默认get, 可选的值为: get, post, cget和cpost -url 测试:请求地址,例如http://CSB服务地址:8086/CSB?p1=v1。CSB服务地址即创建该实例时绑定的SLB的地址 -api 服务名 -version 服务版本 -ak accessKey, 可选 -sk secretKey, 可选 -D 请求参数, 格式: -D "key=value" 可以定义多个-D参数 -H HTTP Header, 格式: -H "key:value" 可以定义多个-H参数 -cbJSON 以JSON串方式POST发送的请求body, 例如: -cbJSON "{'name':'wiseking'}" -cc,--changeCharset 返回值是否需要转换charset -h,--help 打印帮助信息 -d,--debug 打印调试信息 -nonce 是否做nonce防重放处理,不定义为不做nonce重放处理 -proxy 设置代理地址, 格式: proxy_hostname:proxy_port -sdkv,--sdk-version SDK版本信息 -sign,--signImpl 客户端签名类, 可选 -verify,--verifySignImpl CSB服务端验签类, 可选
下面介绍使用 SDK 命令行调用 API 的示例。 获取实例列表
java -jar http-sdk.jar
-method get
-api /api/csbinstance/listCsbs
-version 1.1.0.0
-ak replace-ak
-sk replace-sk
-url https://csb.console.aliyun.com/api/csbinstance/listCsbs 在某个实例中创建一个新的服务组
java -jar http-sdk.jar
-method get
-api /api/project/createorupdate
-version 1.1.0.0
-ak replace-ak
-sk replace-sk
-Ddfile=dfile.prop
-url https://csb.console.aliyun.com/api/project/createorupdate?csbId=175 其中 dfile.prop 的内容如下:
data={"description":"openapi test2","projectName":"lt-测试服务组"}
注意 API 定义的是接口全路径,必须以“/”开头。 必须根据 API 的要求使用正确的方法(Method)。 使用代码调用
说明 需要在应用的 pom.xml 中添加 http-client-sdk 的依赖。 下面介绍使用代码调用 API 的示例。 获取实例列表
import com.alibaba.csb.sdk.HttpCaller; import com.alibaba.csb.sdk.HttpCallerException; import com.alibaba.csb.sdk.HttpParameters; import com.alibaba.fastjson.JSON;
public class ConsoleAPI { public static void main(String[] args) throws HttpCallerException { listCsbInstance(); }
public static void listCsbInstance() throws HttpCallerException {
String requestURL = "http://csb.console.1120.daily.server"; //console域名
String apiName = "/api/csbinstance/listCsbs";
String queryParams = "";
String version = "1.1.2.0";
String method = "get";
String ak = "ac46xxxx82c64xxxx2c0axxxx4b82xxx";
String sk = "jonvxxxxGeKVxxxxKpxNxxxx6uxx";
HttpParameters.Builder hp = HttpParameters.newBuilder()
.requestURL(requestURL + apiName + queryParams)
.api(apiName)
.version(version)
.accessKey(ak)
.secretKey(sk)
.method(method);
hp.putParamsMap("pageNum", "2");
String ret = HttpCaller.invoke(hp.build());
System.out.println("ret=" + JSON.toJSONString(JSON.parse(ret), true));
}
} 在某个实例中创建一个新的服务组
import com.alibaba.csb.sdk.HttpCaller; import com.alibaba.csb.sdk.HttpCallerException; import com.alibaba.csb.sdk.HttpParameters; import com.alibaba.fastjson.JSON;
public class ConsoleAPI { public static void main(String[] args) throws HttpCallerException { createProject(); }
public static void createProject() throws HttpCallerException {
String apiName = "/api/project/createorupdate"; // 请求接口
String version = "1.1.2.0";
String method = "post";
String ak = "ac46xxxx82c64xxxx2c0axxxx4b82xxx";
String sk = "jonvxxxxGeKVxxxxKpxNxxxx6uxx";
String data = "{\"projectName\":\"CSB服务组测试\"" +
",\"projectOwnerName\":\"CSBTest\"" +
",\"projectOwnerEmail\":\"\"" +
",\"projectOwnerPhoneNum\":\"\"" +
",\"description\":\"\"}";
HttpParameters.Builder hp = HttpParameters.newBuilder()
.requestURL(CSB_CONSOLE_DOMAIN + apiName + "?csbId=176") // 请求地址可以附带请求参数
.api(apiName)
.version(version) // 设置调用的API和版本
.accessKey(ak).secretKey(sk) // 设置使用当前实例账号的AK、SK
.method(method) // 设置调用方式
.putParamsMap("data", data); // 设置请求的form body参数
String ret = HttpCaller.invoke(hp.build()); // 进行调用
System.out.println("retStr =" + ret);
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。