开发者社区> 问答> 正文

使用 HTTP-SDK 如何调用 Console API?

使用 HTTP-SDK 如何调用 Console API?

展开
收起
保持可爱mmm 2020-03-28 17:46:33 1915 0
1 条回答
写回答
取消 提交回答
  • 使用命令行调用 使用代码调用 使用 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);
    }
    

    }

    2020-03-28 17:46:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACE 区域技术发展峰会:Flink Python Table API入门及实践 立即下载
Java Spring Boot开发实战系列课程【第15讲】:Spring Boot 2.0 API与Spring REST Docs实战 立即下载
一个跨平台的云服务SDK需要什么 立即下载