开源地址
https://github.com/XiaoMi/mone/tree/master/miapi-all/mi-api 欢迎对云原生技术/研发效能感兴趣的小伙伴加入(Fork、Star)我们。
背景
目前软件技术领域生态丰富,各类产品与技术蓬勃发展。互联网行业目前主流技术架构普遍基于微服务的协作式研发。在微服务研发的协作体系中,微服务接口文档、测试、Mock等相关协作环节的自动化、智能化能力是决定研发交付效率的关键一环,MiApi 则用于改善,填补该环节的空缺与不足。
什么是MiApi
市面上第一款集成了多类型 RPC 接口自动化管理、自动化文档生成、接口测试、mock、团队文档等功能模块的一站式平台。重新定义了微服务接口的开发交付流程,致力于提供最好的接口治理服务,更大程度提高开发效率。并已取得相关软件著作权《Mi-Api一站式微服务接口维护平台》与相关技术专利《一种基于注解的RPC接口文档自动生成技术》。
我们面临的问题
之所以决定立项做这件事儿是因为我们的业务研发在服务接口交付时切实的存在几个痛点:
极高的接口对接成本
对多种协议(如Dubbo、Grpc)微服务接口开发文档生成能力缺失,人工撰写文档极度耗费开发人员人力、时间、精力,版本难以控制、修改难以追溯,接口改动/协同成本极高。
互相阻塞的调试过程
微服务接口开发过程中缺乏测试/调试工具,提供方与使用方之间无法提前 mock 数据,互相阻塞开发进度。
持续交付能力的缺失
接口/项目文档管理混乱,缺乏较好的聚合、持续交付以及长期维护能力。
而市面上目前主流的几款接口管理软件如 YApi、Swagger、Postman等等...几乎都无法兼顾我们面临的这几项痛点,对于多协议,自动化生成的支持都较为薄弱。
基于以上痛点,我们决定自主设计、研发一套完整的、更加自动化、流程化、智能化的解决方案,以下本文将对项目进行详细介绍,以及对于一些痛点问题我们是如何解决、如何设计的。
核心流程与能力
核心流程
为了做到整个服务接口交付过程 90% 以上的自动化,我们设计了一套基于注解的在线接