美文网首页
API网关服务调用方用户指南

API网关服务调用方用户指南

作者: 正弋 | 来源:发表于2018-05-04 16:50 被阅读0次

    如何调用一个API

    1、创建应用

    点击“应用管理菜单”:

    appList.png


    addApp.png


    调用方需要先在网关平台创建一个应用,创建时只需要填入应用名称,名称的限定条件:只能使用英文字符或数字,长度在100以内。

    2、获得授权

    由服务提供方在网关平台上搜索应用名称,并进行授权。

    3、调用API

    网关平台提供的SDK(基于JDK8)封装了加密、签名等操作,使用者只需传入相应的参数即可。
    1、SDK的获取:
    在maven pom.xml文件中加入以下内容

    <dependency>
        <groupId>com.sunlands.gateway</groupId>
        <artifactId>apigateway-sdk</artifactId>
        <version>1.3-SNAPSHOT</version>
    </dependency>
    

    2、通过SDK发起调用请求
    首先通过Builder构造出KongClient

    KongClient kongClient = new KongClient.Builder()
        .kongUrl(<kong base url>)
        .appKey(<appKey>)
        .appSecret(<appSecret>)
        .build();
    
    <kong base url>: 网关平台服务地址的基础部分,测试环境地址:http://api-test.sunlands.com
    <appKey>、<appSecret>: 在管理界面创建好应用之后,可以在其详情页面看到appKey、appSecret
    除了这里的必须参数外,builder还提供了以下方法用于配置KongClient参数:
    maxConnections():客户端与网关服务器之间连接池最大连接数,缺省值为100
    keepAliveDuration(): 客户端与网关服务器之间连接池中连接的保持时间,以毫秒为单位,缺省值为600000
    connectTimeout(): 客户端与网关服务器之间的连接超时时间,以毫秒为单位,缺省值60000
    readTimeout(): 客户端从网关服务器读取数据(接收响应)超时时间,以毫秒为单位,缺省值10000
    writeTimeout(): 客户端向网关服务器发送数据超时时间,以毫秒为单位,缺省值10000
    

    然后可以通过KongClient调用其get、XXXForm、XXXTextBody等方法,其中“XXX”与HTTP method对应如post、put、delete等。其中XXXForm系列的方法会以Form表单方发起请求,XXXTextBody系列的方法会以text body(mediaType为application/json)方式发起请求。如下所示:

    String textBody = "{\"id\": 1,\"name\":\"尚德\"}";
    Response response = kongClient.postTextBody(<API uri>, textBody);
    <API uri>值为:/{API分组名}/{API请求PATH}
    
    注意这里的response有isSuccessful、code、body等方法,用于判断请求状态、读取响应码、读取响应体等。使用完Response后,要记得调用close方法释放资源!!!

    相关文章

      网友评论

          本文标题:API网关服务调用方用户指南

          本文链接:https://www.haomeiwen.com/subject/hzadrftx.html