专栏名称: Java知音
专注于Java,推送技术文章,热门开源项目等。致力打造一个有实用,有情怀的Java技术公众号!
目录
相关文章推荐
今天看啥  ›  专栏  ›  Java知音

如何优雅的实现接口统一调用 ?

Java知音  · 公众号  · 后端 互联网短视频  · 2025-04-11 10:05
    

主要观点总结

文章主要讨论了在接口调用过程中遇到的耦合问题,并提出了如何通过创建对接第三方服务的微服务(tps服务)来解决这些问题。文章详细描述了tps服务的角色、实现方式以及业务系统的配合流程。

关键观点总结

关键观点1: 接口调用中的耦合问题

文章首先指出了在进行接口调用时,尤其是与第三方系统交互时,可能会遇到接口耦合度高的问题。每个业务接口都需要对接第三方接口,导致代码重复且难以维护。

关键观点2: tps服务的创建与角色

为了解决上述问题,文章提出了创建对接第三方服务的微服务——tps服务。该服务作为后端微服务,负责与第三方服务进行对接,并合理封装调用参数。后端其他业务系统可以通过tps服务统一提供的接口进行调用。

关键观点3: tps服务的实现细节

tps服务通过暴露feign接口来实现。文章给出了具体的实现类示例,包括枚举类定义、接口实现等。此外,还提到了通过工厂类初始化不同service实现类的细节。

关键观点4: 业务系统的配合与实现

业务系统需要继承tps服务的feign接口并重写push方法。业务层只需实现service接口,无需处理对接的业务逻辑。通过工厂模式实现service实例的创建,避免多个工作线程创建多个工厂实例。

关键观点5: 总结与展望

文章最后总结了设计的接口统一调用流程,并提到了对接第三方重复调用问题、调用结果缓存、调用超时解决、失败降级等策略。同时,也欢迎大家提出更好的接口统一调用方式。


文章预览

耦合问题 有些时候我们在进行接口调用的时候,比如说一个push推送接口,有可能会涉及到不同渠道的推送。 以我目前业务场景为例,我做结算后端服务的,会与金蝶财务系统进行交互,那么我结算后端会涉及到多个结算单类型,如果每一个种类型的结算单都去暴露一个contoller接口给前端提供,而且其实对接第三方的接口,有些接口是共通的。 前端涉及到的问题 需要调用后端多个controller,不同接口不同的传参数,如果遇到后端接口修改,会涉及到多个页面的修改,耦合度很高; 需要对多个按钮设置权限配置; 后端涉及到的问题 需要每个业务接口,都去写一个对接第三方接口的push推送方法,无形中增加很多重复的代码,耦合度也很高; 如果涉及到第三方服务接口改造,后端接口也需要进行更改,会修改大量代码; 如何解决 创建对接第三方服务 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览