主要观点总结
文章主要讨论了在接口调用过程中遇到的耦合问题,并提出了如何通过创建对接第三方服务的微服务(tps服务)来解决这些问题。文章详细描述了tps服务的角色、实现方式以及业务系统的配合流程。
关键观点总结
关键观点1: 接口调用中的耦合问题
文章首先指出了在进行接口调用时,尤其是与第三方系统交互时,可能会遇到接口耦合度高的问题。每个业务接口都需要对接第三方接口,导致代码重复且难以维护。
关键观点2: tps服务的创建与角色
为了解决上述问题,文章提出了创建对接第三方服务的微服务——tps服务。该服务作为后端微服务,负责与第三方服务进行对接,并合理封装调用参数。后端其他业务系统可以通过tps服务统一提供的接口进行调用。
关键观点3: tps服务的实现细节
tps服务通过暴露feign接口来实现。文章给出了具体的实现类示例,包括枚举类定义、接口实现等。此外,还提到了通过工厂类初始化不同service实现类的细节。
关键观点4: 业务系统的配合与实现
业务系统需要继承tps服务的feign接口并重写push方法。业务层只需实现service接口,无需处理对接的业务逻辑。通过工厂模式实现service实例的创建,避免多个工作线程创建多个工厂实例。
关键观点5: 总结与展望
文章最后总结了设计的接口统一调用流程,并提到了对接第三方重复调用问题、调用结果缓存、调用超时解决、失败降级等策略。同时,也欢迎大家提出更好的接口统一调用方式。
文章预览
耦合问题 有些时候我们在进行接口调用的时候,比如说一个push推送接口,有可能会涉及到不同渠道的推送。 以我目前业务场景为例,我做结算后端服务的,会与金蝶财务系统进行交互,那么我结算后端会涉及到多个结算单类型,如果每一个种类型的结算单都去暴露一个contoller接口给前端提供,而且其实对接第三方的接口,有些接口是共通的。 前端涉及到的问题 需要调用后端多个controller,不同接口不同的传参数,如果遇到后端接口修改,会涉及到多个页面的修改,耦合度很高; 需要对多个按钮设置权限配置; 后端涉及到的问题 需要每个业务接口,都去写一个对接第三方接口的push推送方法,无形中增加很多重复的代码,耦合度也很高; 如果涉及到第三方服务接口改造,后端接口也需要进行更改,会修改大量代码; 如何解决 创建对接第三方服务
………………………………