如何调用一个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方法释放资源!!!