当前位置:   article > 正文

Biz-SIP业务中台案例实战(1)——开发最简单的App服务_业务中台系统示例

业务中台系统示例

Biz-SIP金融级业务中台(http://bizsip.bizmda.com))是一套基于领域驱动设计(DDD),用于快速构建金融级云原生架构的服务整合中间件,包含了在金融场景里锤炼出来的最佳实践。
Biz-SIP业务中台在交易处理时,会先后涉及Source层、App层和Sink层的处理,:

  • Source模块:负责聚合服务的接入,包括通讯协议适配和消息格式转换,并统一接入App层的App服务。
  • App服务:负责服务的整合和编排,对Source层接入的服务,进行服务编排,并通过Sink模块接入要编排的服务。
  • Sink服务:统一被App服务所调用,实现业务逻辑的处理,或接入外部第三方服务,包括和外部服务对接时的通讯协议适配和报文格式转换。

image.png

案例要求:
开发一个最简单的App服务,收到请求后,不做任何处理,直接把请求返回;请求的发起,是通过Biz-SIP的开放API接口来发送:
在这里插入图片描述
App服务的实现,在Biz-SIP业务中台中有二种实现方案:

  • 编写App服务编排脚本,这是基于JavaScript语言的脚本;
  • 编写App服务类,这是采用Java来开发的。

具体代码和配置可以查看Biz-SIP源代码中的Sample相关测试案例(https://gitee.com/szhengye/biz-sip

一、基于App服务编排脚本的实现

首先,我们先采用编写App服务编排脚本的方式,在Biz-SIP统一配置目录下创建“/service/script/sample1.script”:

var data = bizmessage.data;
return data;
  • 1
  • 2

可以看到在脚本中不对输入报文做任何修改,直接返回。
最后,重启App应用刷新配置,通过开放平台接口发起请求,可以接收到响应,返回了原有报文内容:

$ curl -H "Content-Type:application/json" -H "Biz-Service-Id:/script/sample1" -X POST --data '{"accountNo":"62001818","sex":"0","email":"123232@163.com","mobile":"18601872345"}' http://localhost:8888/api|jq

{
  "code": 0,
  "message": "success",
  "extMessage": null,
  "appServiceId": "/script/sample1",
  "traceId": "5f007c2ed96749249346f8c7369a2f13",
  "parentTraceId": null,
  "timestamp": 1646564075335,
  "data": {
    "sex": "0",
    "mobile": "18601872345",
    "accountNo": "62001818",
    "email": "123232@163.com"
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

二、基于Java开发的App服务类实现

首先,我们需要编写一个App服务类(Sample1AppService.java):

@Slf4j
@Service
public class Sample1AppService implements AppBeanInterface {
    @Override
    public JSONObject process(JSONObject message) throws BizException {
        log.debug("收到请求数据:\n{}", BizUtils.buildJsonLog(message));
        return message;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Sample1AppService类继承了AppBeanInterface接口,实现了process()方法,这个方法的输入输出参数,都是平台统一的JSONObject对象。
可以看到在process()方法中,对输入报文没有做任何修改,是直接把原报文返回的。
然后,在Biz-SIP统一配置目录中的app.yml中,配置对应的App服务:

- app-service-id: /bean/sample1
  type: app-bean-service
  class-name: com.bizmda.bizsip.sample.app.service.Sample1AppService
  • 1
  • 2
  • 3

最后,启动SampleAppApplication应用,通过开放平台接口发起请求,就可以接收到响应,返回了原有报文内容:

$ curl -H "Content-Type:application/json" -H "Biz-Service-Id:/bean/sample1" -X POST --data '{"accountNo":"62001818","sex":"0","email":"123232@163.com","mobile":"18601872345"}' http://localhost:8888/api|jq

{
  "code": 0,
  "message": "success",
  "extMessage": null,
  "appServiceId": "/bean/sample1",
  "traceId": "1a6dea2296604b088564909569685ab3",
  "parentTraceId": null,
  "timestamp": 1646564101826,
  "data": {
    "sex": "0",
    "mobile": "18601872345",
    "accountNo": "62001818",
    "email": "123232@163.com"
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

Biz-SIP官方网站:http://bizsip.bizmda.com
Gitee:[https://gitee.com/szhengye/biz-sip](

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/209445
推荐阅读
相关标签
  

闽ICP备14008679号