图3-4 调用流程
前提条件
● 已获取API的域名、请求url、请求方法、AppKey和AppSecret等信息,具体参见认 证前准备。
● 已安装Eclipse 3.6.0或以上版本,如果未安装,请至Eclipse官方网站下载。
● 已安装Java Development Kit 1.8.111或以上版本,如果未安装,请至Oracle官方 下载页面下载。
获取 SDK
请登录API网关控制台,参考《用户指南》的“SDK”章节,进入SDK页面并下载 SDK。
或直接下载SDK的最新版本,获取“ApiGateway-java-sdk.zip”压缩包,解压后目录 结构如下:
名称 说明
libs\ SDK依赖库
libs\java-sdk-core-x.x.x.jar SDK包 src\com\apig\sdk\demo
\Main.java 使用SDK签名请求示例代码 src\com\apig\sdk\demo
\OkHttpDemo.java src\com\apig\sdk\demo
\LargeFileUploadDemo.jav a
.classpath Java工程配置文件 .project
如果使用maven构建,SDK包中“java-sdk-core-x.x.x.jar”的maven仓库地址为
<groupId>com.huawei.apigateway</groupId>
<artifactId>java-sdk-core</artifactId>
<version>SDK包版本号</version>
</dependency>
说明
使用maven构建时,settings.xml文件需要修改,增加以下内容:
1. 在profiles节点中添加如下内容:
<profile>
<id>MyProfile</id>
<repositories>
<repository>
<id>HuaweiCloudSDK</id>
<url>https://mirrors.huaweicloud.com/repository/maven/huaweicloudsdk/</url>
<releases>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>HuaweiCloudSDK</id>
<url>https://mirrors.huaweicloud.com/repository/maven/huaweicloudsdk/</url>
<releases>
</pluginRepositories>
</profile>
2. 在mirrors节点中增加:
<mirror>
<id>huaweicloud</id>
<mirrorOf>*,!HuaweiCloudSDK</mirrorOf>
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
</mirror>
3. 增加activeProfiles标签激活配置:
<activeProfiles>
步骤2 选择“General > Existing Projects into Workspace”,单击“Next”。
弹出“Import Projects”对话框。
图3-5 Import
步骤3 单击“Browse”,在弹出的对话框中选择解压后的SDK路径。
图3-6 选择 demo 工程
步骤4 单击“Finish”,完成工程导入。
“Main.java”为示例代码,请根据实际情况修改参数后使用。具体代码说明请参考调 用API示例。
----结束
图3-7 新建工程
步骤3 导入API Gateway Java SDK的“jar”文件。
1. 选择“java-sdk-demo”,单击鼠标右键,选择“Build Path > Add External Archives”。
图3-8 导入 jar 文件
2. 选择SDK中“\libs”目录下所有以“jar”结尾的文件,单击“打开”。
图3-9 选择 jar 文件
步骤4 新建“Package”及“Main”文件。
1. 选择“src”,单击鼠标右键,选择“New > Package”。
图3-10 新建 Package
图3-11 设置 Package 的名称
3. 单击“Finish”。
完成“Package”的创建。
4. 选择“com.apig.sdk.demo”,单击鼠标右键,选择“New > Class”。
图3-12 新建 Class
5. 在“Name”中输入“Main”,勾选“public static void main(String[]
args)”。
图3-13 设置 Class 的配置
6. 单击“Finish”。
完成“Main”文件的创建。
步骤5 完成工程创建后,最终目录结构如下。
图3-14 新建工程 Main 的目录结构
“Main.java”无法直接使用,请根据实际情况参考下文调用API示例输入所需代码。
----结束
调用 API 示例
说明
● 您需要在控制台创建一个API,可以选择Mock模式,并发布到环境上。创建及发布API的步 骤请参见用户指南。
● 示例API的后端为打桩的HTTP服务,此后端返回一个“200”响应码及“Congratulations, sdk demo is running”消息体。
步骤1 在“Main.java”中加入以下引用。
import java.io.IOException;
import javax.net.ssl.SSLContext;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.conn.ssl.AllowAllHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLContexts;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import com.cloud.apigateway.sdk.utils.Client;
import com.cloud.apigateway.sdk.utils.Request;
步骤2 创建request,过程中需要用到如下参数。
● AppKey:通过认证前准备获取。根据实际情况填写,示例代码使用
“4f5f626b-073f-402f-a1e0-e52171c6100c”作为样例。
● AppSecret:通过认证前准备获取。根据实际情况填写,示例代码使用“******”作 为样例。
● Method:请求的方法名。根据API实际情况填写,示例代码使用“POST”作为样
● queryString: url携带参数的部分,根据API实际情况填写。支持的字符集为[0-9a-zA-Z./;[]\-=~#%^&_+: "]。示例代码使用“name=value”作为样例。
request.setKey("4f5f626b-073f-402f-a1e0-e52171c6100c"); //创建应用时得到 request.setSecret("*****"); //创建应用时得到
request.setMethod("POST");
request.setUrl("http://c967a237-cd6c-470e-906f-a8655461897e.apigw.exampleRegion.com/java-sdk");
//url地址
request.addQueryStringParam("name", "value");
request.addHeader("Content-Type", "text/plain");
//request.addHeader("x-stage", "publish_env_name"); //如果API发布到非RELEASE环境,需要增加自 定义的环境名称
System.out.println(response.getStatusLine().toString());
Header[] resHeaders = response.getAllHeaders();
{
if (client != null) {
client.close();
}
} catch (IOException e) {
e.printStackTrace();
} }
步骤4 选择“Main.java”,单击鼠标右键,选择“Run As > Java Application”,运行工程 测试代码。
图3-15 运行工程测试代码
步骤5 在“Console”页签,查看运行结果。
图3-16 调用成功后的返回信息
----结束