“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第n篇文章,点击查看活动详情”
序
今天开会有个需求 要开发一个 接入外部 各种 http/webservice 接口的服务,看大家的眼神,好像内定了我做。。。。
好吧,听听需求吧,需要对接很多 外部系统 接口,系统存储到 我们自己系统,然后给内部系统 提供查询接口
需求
简单来说
- 可扩展的支持 对接各种外部接口 (要看 对外接口 是否能反推,不能反推 就根据业务 自定义情况)
- 支持 各类数据 存储 (可扩展)
- 支持 数据查询 多种方式
- 调用外部接口 日志管理
调研
可扩展的支持 对接各种外部接口
我花了2小时 写了一个 简单的封装,可以实现 公共调用进行封装,使用glue 进行代码自定义,这样就实现了
需要注意
- 因为使用glue 的原因,需要对glue的insert/update 进行 严格检查
- 支持 加密方式的 选择,我对多种 加密方式 比如: 加密算法(MD5、AES、RSA) 进行了 实现,可以通过type 进行自由选择
- 超时 重试都进行了默认实现,可以进行自定义覆盖
这个 简单的就算完事了,具体对接的时候 再改 哈哈
支持 各类数据 存储 (可扩展)
我靠 这个数据 还真不知道 都返回什么,想想 是把返回 当成一个json 存储到一个字段 还是把列式 变为 行式
想想,我去 不行,我去问问需求,有没有范围查询的时候 。。。。告诉我 目前知道的都是 根据id 操作。。。
这。。。好办啊,我可以 存储到一个字段中,那如果 后面有范围查询 怎么办呢?
想想,也好办啊,我之前写了一个 多平台 搜索平台,我把这些数据 整合到 搜索平台,搜索去呗。。。。。
行,暂时告一段落,不敢保证没问题,到时候 根据 实际情况 在实现吧
要看 对外接口 是否能反推,不能反推 就根据业务 自定义情况
如果能反推 那就做cache 然后 定时校对数据,有现成组件,引入一个jar
支持 数据查询 多种方式
参数 必须以这些为底子,可以扩展,然后 我们接收到 参数,进行解析,然后 实现业务逻辑
同时 因为是开放平台,需要实现
- 开箱即用,写完业务代码直接启动服务即可使用,无需其它配置。
- 参数自动校验,支持国际化参数校验(JSR-303)。
- 校验功能和结果返回功能实现各自独立,方便自定义实现或扩展。
- 采用注解来定义接口,维护简单方便。
- 支持i18n国际化消息返回。
- 实现自己 加密算法
- 写一个 自己的client 支持 其他端 快速接入
调用外部接口 日志管理
日志管理。。。好办 因为之前 基建没搞好,日志审计 没有,直接接着这版本 搞定它。
- 记录 每个表的数据 修改记录 (朔源系统)支持内部消息 和 外部系统消息
- 支持 业务日志 自定义管理
然后业务日志 在另外开一张表 根据 type 进行 区分