背景

项目开发过程中通常会调用一些三方的接口。
例如:对象存储,企业信息查询,短信发送等等。

问题

因为三方的接口通常都是有多个产品可以选择的,例如,对象存储服务,可以使用阿里云的OSS,华为云的OBS,还有本地部署的FastDFS、Minio等,所以有时候需要考虑扩展性。

通常项目使用三方的接口在开发时基本会确定而且日后很少更换,也很难更换(例如对象存储如果需要更换的话,还要牵扯历史数据的迁移。但是短信服务更换相对来说迁移成本就很低)。

设计思路

Java是面向对象语言,遵从面相接口开发模式。

设计接口

因为现有的三方接口需要的参数其实差不多,所以可以餐口某一家的设计接口。例如对象存储服务上传对象需要,bucket名称,对象id等。

具体实现

针对接口去做具体的实现。

代码开发方式

  • 整合

    • 优点:不需要额外创建jar包,单体应用适用。
    • 缺点:三方接口可能需要引入自己的jar包,maven中可能需要引入多个三方的jar包,不过可以使用scope来设置是否打包到项目中
  • 拆分

    • 优点:可以根据接口独立的开发三方的具体实现,maven中只需要引入需要的部分
    • 缺点:需要额外的jar包,不太适合单体应用

示例

因为想打造一个通用的服务于微服务的功能,所以采用了拆分的代码开发方式开发。
github:
https://github.com/wenyu7980/...
gitee:
https://gitee.com/wenyu7980/w...

总结

本文更多的想展现一种应对三方接口开发的思路,虽然实际开发中很好会出现更换三方接口的情况。


彣彧
0 声望0 粉丝

致力于B端的中台开发