微服务-调用三方服务接口项目设计

背景

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

问题

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

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

设计思路

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

设计接口

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

具体实现

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

代码开发方式

  • 整合
  • 优点:不需要额外创建jar包,单体应用适用。
  • 缺点:三方接口可能需要引入自己的jar包,maven中可能需要引入多个三方的jar包,不过可以使用scope来设置是否打包到项目中
  • 拆分
  • 优点:可以根据接口独立的开发三方的具体实现,maven中只需要引入需要的部分
  • 缺点:需要额外的jar包,不太适合单体应用

示例

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

总结

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    余生动听阅读 13,586评论 0 11
  • 彩排完,天已黑
    刘凯书法阅读 9,758评论 1 3
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 127,021评论 2 7