ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Biz-SIP中间件之xbank项目实战(3)——账户域服务的开发

2021-10-10 16:31:49  阅读:175  来源: 互联网

标签:SIP 服务 适配 中间件 接口 Biz sink xbank


xbank项目版本库:https://gitee.com/szhengye/xbank.git

项目实践:账户域服务的开发

1. Account领域服务的封装

Account领域服务是和Customer领域服务并列的,Account领域服务的封装,依次有以下步骤:

  • 第1步:领域服务接口的约定:在xbank-account-sink-client中编写AccountSinkInterface接口;
  • 第2步:领域服务的实现:创建xbank-account-sink子模块,基于第1步约定的接口,实现AccountSinkService SpringBean,并封装成能独立运行的微服务应用;
  • 第3步:配置sink.yml文件,把AccountSinkService SpringBean作为Sink连接到Biz-SIP平台;

另外,Account领域服务在封装时,涉及到多个接口调用,对每个接口采用命令执行器(Command Executor),所有的接口实现继承AbstractBeanCmdExe类来实现:
image.png

2. Account服务在适配层和应用层的开发和对外暴露

把sink服务,暴露给适配层接口调用,有2种方案:

方案一:

通过sink-service类型,打通适配层和应用层:直接把account领域服务所对应的sink,直接暴露给Biz-SIP开放平台接口。

  • 第4步:配置service.yml文件,把account-sink直接作为sink-service暴露给Biz-SIP开放平台接口。

接口测试如下:

$ curl -H "Content-Type:application/json" -H "Biz-Service-Id:sink/account" -X POST --data '{"methodName":"getAccountListByCustomerId","params":["001"]}' http://localhost:8888/api|jq

{
  "code": 0,
  "message": "success",
  "extMessage": null,
  "traceId": "2280472dd72c4ee4a2b7214604e9cf27",
  "parentTraceId": null,
  "timestamp": 1630751382623,
  "data": {
    "result": [
      {
        "accountId": "0001",
        "balance": 100,
        "customerId": "001"
      },
      {
        "accountId": "0002",
        "balance": 200,
        "customerId": "001"
      }
    ]
  }
}

方案二:

通过bean-service,打通适配层和应用层:

  • 第4步:应用服务接口的约定:在xbank-personal-app-client中编写PersonalAppInterface接口和CustomerAndAccountList DTO类;
  • 第5步:应用服务的实现:在xbank-app模块中,基于第4步约定的接口实现PersonalAppService服务;
  • 第6步:配置service.yml文件,把第5步开发PersonalAppService服务,通过bean-service的account-sink暴露给适配层;
  • 第7步:在适配层创建xbank-openapi-source子模块,开发PersonalController类,暴露个性化的REST接口,并通过SourceClientFactory.getBizServiceClient(PersonalAppInterface.class,“app/personal”)获取应用层服务的调用接口,在适配层中调用应用层约定接口。

接口测试如下:

$ curl http://localhost:9001/personal/getAccountListByCustomerId\?customerId=001|jq

[
  {
    "accountId": "0001",
    "balance": 100,
    "customerId": "001"
  },
  {
    "accountId": "0002",
    "balance": 200,
    "customerId": "001"
  }
]

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

标签:SIP,服务,适配,中间件,接口,Biz,sink,xbank
来源: https://blog.csdn.net/shizhengye/article/details/120687974

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有