Skip to content

ESB统一请求工具使用说明

配置说明

为统一ESB接口请求调用方式,方便和简化各业务组调用ESB接口,现封装了ESB调用库,引入方式如下:

  • 在 POM 文件中增加依赖
pom
<dependency>  
    <groupId>com.tineco.esb.helper</groupId>  
    <artifactId>esb-helper</artifactId>  
    <version>1.0.0</version>  
</dependency>
  • 在配置文件中增加ESB相关配置,目前需要配置两个项目,默认配置的是ESB测试环境,如果发布在正式环境,请修改为ESB正式环境域名和appkey,如下所示:
yml
esb:  
    helper:  
        host: https://t-esb-gateway.tineco.com  
        appkey: 637dd7aafd42a5381f76a91a

方法说明

  • 目前提供两个方法,Get方法和Post方法,都是同步方法,暂不支持异步方法
    • Get方法: 参数: apiUrl: 类型为String,接口除host外的链接地址,如 /restcloud/tineco-user/sso/third-system/sendMsgToTineChat; pathParams: 类型为Map<String, Object>,链接中的参数,如/v1/{name},name即为pathParam; urlParams: 类型为Map<String, Object>,拼接在链接后面的参数,如/v1/countries?code=xxx&name=xxx,code和name即为urlParam 返回结果: HttpResult.Body: 获取到body对象后,必须对它进行非空判断,验证通过后,调用toBean方法或者toList方法进行反序列化;更多请参考文档
    • Post方法: 参数: apiUrl:类型为String,接口除host外的链接地址,如 /restcloud/tineco-user/sso/third-system/sendMsgToTineChat; headers: 类型为Map<String, String>,接口除了appkey外的的其他需要header; params: 类型为Map<String, Object>,Json类型Body里的参数; 返回结果: HttpResult.Body: 获取到body对象后,必须对它进行非空判断,验证通过后,调用toBean方法或者toList方法进行反序列化;更多请参考文档

调用示例

java
private final EsbClient esbClient;

List<TodoCountResponse> todoCounts = new ArrayList<>();
List<String> countUrls = pdsConfig.getEsbInfo().getTodoCountUrls();
Map<String, String> header = new HashMap<>();  
header.put("system", "PORTAL");  
Map params = JSON.parseObject(JSONObject.toJSONString(request), Map.class);  
try {  
    for (String url : countUrls) {  
        HttpResult.Body body = esbClient.post(url, header, params);  
        if (Objects.isNull(body)) {  
            continue;  
        }  
        EsbResult res = body.toBean(EsbResult.class);  
        if (Objects.nonNull(res)) {  
            todoCounts.add(TodoCountResponse.convert(res.getData()));  
        } else {  
            log.error("url:::{}", url);  
            log.error("获取Todo Count 数据失败");  
        }  
    }  
} catch (Exception e) {  
    e.printStackTrace();  
    throw new RuntimeException(e);  
}  
return todoCounts;

以上就是ESB统一请求工具的使用说明,目前为1.0.0版本,后期会继续迭代,大家有什么需求想法也可以发给我。

  • Tinechat: truman.zhang