使用HTTP-Client SDK可以对CSB控制台的OpenAPI进行调用,帮助您完成开发和运维操作。
前提条件
- 下载HTTP-SDK。
- 按照OpenAPI的文档了解该API的调用地址、请求参数、请求方式(POST和GET)和返回值的结构。
- 确定要调用API的安全Key信息,即管理员用户创建凭证的一对有效的AccessKey ID和AccessKey Secret。
背景信息
HTTP-SDK介绍和使用方式,请参见SDK参考。使用HTTP-SDK调用Console API有命令行和代码两种方式。
使用命令行调用
命令行方式通常用来测试或临时调用OpenAPI。
命令行参数说明:
#java -jar http-client-1.1.5.8.jar
usage: java -jar http-client.jar [options...]
-method <arg> 请求类型, 默认get, 可选的值为: get, post, cget和cpost。
-url <arg> 测试:请求地址,例如http://CSB服务地址:8086/CSB?p1=v1。CSB服务地址即创建该实例时绑定的SLB的地址。
-api <arg> 服务名。
-version <arg> 服务版本。
-ak <arg> AccessKey ID, 可选。
-sk <arg> AccessKey Secret, 可选。
-D <arg> 请求参数, 格式: -D "key=value" 可以定义多个-D参数。
-H <arg> HTTP Header, 格式: -H "key:value" 可以定义多个-H参数。
-cbJSON <arg> 以JSON串方式POST发送的请求body, 例如: -cbJSON "{'name':'wiseking'}"。
-cc,--changeCharset 返回值是否需要转换charset。
-h,--help 打印帮助信息。
-d,--debug 打印调试信息。
-nonce 是否做nonce防重放处理,不定义为不做nonce重放处理。
-proxy <arg> 设置代理地址, 格式: proxy_hostname:proxy_port。
-sdkv,--sdk-version SDK版本信息。
-sign,--signImpl <arg> 客户端签名类, 可选。
-verify,--verifySignImpl <arg> 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) // 设置使用当前实例账号的AccessKey ID和AccessKey Secret。 .method(method) // 设置调用方式。 .putParamsMap("data", data); // 设置请求的form body参数。 String ret = HttpCaller.invoke(hp.build()); // 进行调用。 System.out.println("retStr =" + ret); } }
在文档使用中是否遇到以下问题
更多建议
匿名提交