Skip to content

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));

Power By 数字海南