通用接口开放平台设计与实现——(1)整体介绍

本文介绍了大型企业物流系统对接难题及解决方案,借鉴淘宝开放平台模式,构建一套包含API服务和消息服务的接口开放平台。API服务提供标准化RESTful接口,消息服务基于Netty的WebSocket实现实时推送。平台降低对接成本,简化运维,具备通用性,适用于多种应用场景。
摘要由CSDN通过智能技术生成

背景

首先简单聊下背景,大型企业中的物流系统,需要跟众多的内外部系统交互,对接的系统达到十几个,接口数量在50+,并且后续还会大量增加新的对接方,很多对接方是类似的,例如跟汽运物流厂商的运输管理系统TMS,进行运输委托、运力反馈、运费结算、签收回传等交互。

如何按照传统模式去做点对点集成,会消耗包括时间和费用在内的大量成本,并且上线后还会搭上不小的运维成本。同时,伴随的问题,当业务发生变更时,接口的升级更新,也是大麻烦,往往涉及到多方协调、开发、联调、上线。

基于这个背景,思考一种优雅的解决方案,能低成本、高效率解决这个难题。

解决方案

最终解决思路是参照淘宝开放平台的模式,实现一套物流系统的接口开放平台,由平台对外提供一套标准的Rest风格的API服务作为服务接口,相关方系统通过这些API服务进行数据查询或数据更新。

同时,为了规避相关方系统需要定时轮询来获取数据变动的弊端,另外提供一套消息服务,接口开放平台作为消息服务中心,接收物流系统作为生产者产生的业务消息,如委托单创建、车辆入厂、用户签收,然后查找订阅该消息主题的相关方系统,实时以消息推送的方式通知相关方系统。

由平台技术框架部分,承担通用的逻辑实现,如数据验证、服务分发与调用、权限、日志、异常,而具体的业务API服务和业务系统的开发,仅需关注业务逻辑的实现即可。

在这里插入图片描述

API服务接口实现具体功能,消息服务接口实现消息通知。依托面向对象设计理念,对接口和消息进行组织:功能模块->业务实体->功能接口及消息
在这里插入图片描述

方案优势

采用该方案,最大的优点就是实现了标准化,相关方来对接时,如果现有的API能满足需求,只需提供标准化的服务接口,做简单的初始化配置(账号、密钥、权限、角色等)即可,最多加一点技术支持(解答疑问、联调);如果现有的API服务不能满足需求,则只需要设计和实现新的业务API服务就行了,并且新服务开发完成发布后,以后还能复用。

按照这种模式来实现,接口开发平台自身的设计和开发比较复杂,投入大一些,但一旦搭建出平台后,后续的业务开发成本就很低了,特别是对接工作和运维工作将非常简单,没有耦合和依赖。例如,我们做物流跟踪,市面上有多家服务提供商,如果是按照这种模式来,如跟A厂家合作一段时间后,对其服务不满意,则可以轻松更换一家,不需要进行接口的定制和调整。

该平台具有通用性,物流只是一个比较典型的应用场景而已,接下来,我会将整个平台的设计与实现,包括中间方案的选择,进行的重构和优化,用一系列文章进行介绍和说明,欢迎评论、交流、收藏和转发。

平台组成

平台主要由两部分组成,API服务和消息服务。
API服务:物流接口平台对外提供统一的数据接口服务,其他应用系统通过调用API服务,一方面,可以查询权限范围内的物流数据,另一方面,可以将自身系统产生的数据推送至物流系统。
消息服务:物流接口平台提供消息服务,主动将物流系统的数据的变化以消息的形式推送给其他系统。消息服务基于Socket技术,调用方系统与物流接口平台建立长连接,实时接收消息通知,避免调用方定时轮询,提高API调用效率,降低双方服务器负荷。

功能架构

前面说过,接口开放平台主要有两部分功能组成,一是处于主体地位的API接口,对外提供数据服务;二是处于辅助角色的消息服务,用于通知数据变动。
实际上,客观上还需要平台自身管理功能,来维护平台的基础数据和功能,例如应用管理、服务管理、消息管理,权限控制,日志查看等。

系统功能架构图如下所示:
在这里插入图片描述

模块划分

image.png
platform-cip-common:公共基础
platform-cip-api:对外提供API数据接口,提供API服务
platform-cip-message:基于netty的web socket服务端提供消息服务
platform-cip-manage:平台自身基础数据的维护,如应用、API服务、消息服务、数据权限管理等。
4个模块内关系为manage依赖common,api和message相互独立,但都依赖于manage。

此外,cip-client是消息客户端,独立部署与运行。

开源平台资料

平台名称:一二三开发平台
简介: 企业级通用低代码开发平台
设计资料:CSDN专栏
开源地址:Gitee
开源协议:MIT
欢迎收藏、点赞、评论,你的支持是我前行的动力。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学海无涯,行者无疆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值