主题
ApiOne 基础调用指南
通用工具类封装
java
import cn.com.digitalhainan.apione.sdk.ContentBody;
import cn.com.digitalhainan.apione.sdk.HttpCaller;
import cn.com.digitalhainan.apione.sdk.HttpParameters;
import cn.com.digitalhainan.apione.sdk.HttpReturn;
import com.alibaba.fastjson.JSONObject;
import okhttp3.MediaType;
import java.util.Map;
/**
* ApiOne 接口调用工具类
*/
public class ApioneUtils {
/**
* 接口请求
*
* @param requestUrl 接口请求地址
* @param apiName 接口名称
* @param ak 我的应用-我申请的功能-对应功能查看ak
* @param sk 我的应用-我申请的功能-对应功能查看sk
* @param region 接口所在区域 INTRA(政务外网),INTER(政务互联网),PUBLIC(公网)
* @param contentJson 接口请求Body入参
* @param path 接口路径参数,按该格式拼接:"/${path1}/${path2}/..."
* @param headerParamsMap 接口Header参数,Key-Value数据格式
* @param queryParamsMap 接口Query参数,Key-Value数据格式
* @return 接口返回数据
*/
public static String call(String requestUrl,
String apiName,
String ak,
String sk,
String region,
String contentJson,
String path,
Map<String, String> headerParamsMap,
Map<String, String> queryParamsMap) {
ContentBody contentBody = new ContentBody(contentJson);
// 拼装业务信息
HttpParameters parameters = HttpParameters.builder()
.api(apiName)
.region(region)
.mediaType(MediaType.parse("application/json"))
.accessKey(ak)
.secretKey(sk)
.contentBody(contentBody)
.requestUrl(requestUrl)
.build();
// 设置 header 参数
if (headerParamsMap != null && !headerParamsMap.isEmpty()) {
parameters.setHeaderParamsMap(headerParamsMap);
}
// 设置 query 参数
if (queryParamsMap != null && !queryParamsMap.isEmpty()) {
parameters.setQueryParamsMap(queryParamsMap);
}
// 设置 path 参数
if (path != null && !"".equals(path)) {
parameters.setPath(path);
}
// 排查接口问题,需要打印 parameters 给到技术人员
System.out.println(JSONObject.toJSONString(parameters));
// 请求服务接口,获取 response
HttpReturn httpReturn = HttpCaller.getInstance().call(parameters);
// 排查接口问题,需要打印 httpReturn 给到技术人员
System.out.println(JSONObject.toJSONString(httpReturn));
return httpReturn.getResponse();
}
}Path 参数传递
java
import cn.com.digitalhainan.apione.sdk.ContentBody;
import cn.com.digitalhainan.apione.sdk.HttpCaller;
import cn.com.digitalhainan.apione.sdk.HttpParameters;
import cn.com.digitalhainan.apione.sdk.HttpReturn;
import okhttp3.MediaType;
public class PathParamExample {
public static void main(String[] args) {
String requestUrl = "https://api-one-dev.digitalhainan.com.cn/apione";
String apiName = "user.info.query";
String ak = "your-access-key";
String sk = "your-secret-key";
String region = "INTRA";
ContentBody contentBody = new ContentBody("{\"userId\":\"12345\"}");
// 拼装业务信息
HttpParameters parameters = HttpParameters.builder()
.api(apiName)
.region(region)
.mediaType(MediaType.parse("application/json"))
.accessKey(ak)
.secretKey(sk)
// 拼接传入 path 路径
.setPath("/user/12345/info")
.contentBody(contentBody)
.requestUrl(requestUrl)
.build();
// 请求服务,获取 response
HttpReturn call = HttpCaller.getInstance().call(parameters);
String response = call.getResponse();
System.out.println("响应结果:" + response);
}
}Query 参数传递
java
import cn.com.digitalhainan.apione.sdk.ContentBody;
import cn.com.digitalhainan.apione.sdk.HttpCaller;
import cn.com.digitalhainan.apione.sdk.HttpParameters;
import cn.com.digitalhainan.apione.sdk.HttpReturn;
import okhttp3.MediaType;
import java.util.HashMap;
import java.util.Map;
public class QueryParamExample {
public static void main(String[] args) {
String requestUrl = "https://api-one-dev.digitalhainan.com.cn/apione";
String apiName = "user.list.query";
String ak = "your-access-key";
String sk = "your-secret-key";
String region = "INTRA";
ContentBody contentBody = new ContentBody("{}");
// 准备 query 参数
Map<String, String> queryParamsMap = new HashMap<>();
queryParamsMap.put("pageNum", "1");
queryParamsMap.put("pageSize", "10");
queryParamsMap.put("status", "1");
// 拼装业务信息
HttpParameters parameters = HttpParameters.builder()
.api(apiName)
.region(region)
.mediaType(MediaType.parse("application/json"))
.accessKey(ak)
.secretKey(sk)
// 传入 query 参数
.setQueryParamsMap(queryParamsMap)
.contentBody(contentBody)
.requestUrl(requestUrl)
.build();
// 请求服务,获取 response
HttpReturn call = HttpCaller.getInstance().call(parameters);
String response = call.getResponse();
System.out.println("响应结果:" + response);
}
}Header 参数传递
java
import cn.com.digitalhainan.apione.sdk.ContentBody;
import cn.com.digitalhainan.apione.sdk.HttpCaller;
import cn.com.digitalhainan.apione.sdk.HttpParameters;
import cn.com.digitalhainan.apione.sdk.HttpReturn;
import okhttp3.MediaType;
import java.util.HashMap;
import java.util.Map;
public class HeaderParamExample {
public static void main(String[] args) {
String requestUrl = "https://api-one-dev.digitalhainan.com.cn/apione";
String apiName = "data.sync.push";
String ak = "your-access-key";
String sk = "your-secret-key";
String region = "INTRA";
ContentBody contentBody = new ContentBody("{\"data\":\"test\"}");
// 准备 header 参数
Map<String, String> headerParamsMap = new HashMap<>();
headerParamsMap.put("X-Request-Id", "uuid-123456");
headerParamsMap.put("X-Source-System", "my-system");
// 拼装业务信息
HttpParameters parameters = HttpParameters.builder()
.api(apiName)
.region(region)
.mediaType(MediaType.parse("application/json"))
.accessKey(ak)
.secretKey(sk)
// 传入 header 参数
.setHeaderParamsMap(headerParamsMap)
.contentBody(contentBody)
.requestUrl(requestUrl)
.build();
// 请求服务,获取 response
HttpReturn call = HttpCaller.getInstance().call(parameters);
String response = call.getResponse();
System.out.println("响应结果:" + response);
}
}调试排查
调用异常时,打印以下信息给技术人员:
java
// 打印请求参数
System.out.println(JSONObject.toJSONString(parameters));
// 打印返回结果
System.out.println(JSONObject.toJSONString(httpReturn));