开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第28天,点击查看活动详情
为什么需要管理API
Little story
结合自身的开发经历,我们先讨论下,为什么需要管理API
1、在实习的时候是在一家小的游戏公司,人不多,一个产品当时技术经理的安排是一个后端+一个前端的组合 开发,大家都在一个办公室,接口API交付依赖的是"讲一声";这种形式减少了接口定义、审核以及一些文档的 编写,面向指定接口的一对一交付;其实这个过程很顺利,过还可以培养同事之间的关系;直到有一天,我对接的 前端同事离职了,来了一个新的伙伴,然后我们也刚好要产品升级;每当我改一个接口,前端同学或者测试同学 就说,接口不行了。后来我也走了,换了新的后端,"口口相传"API就断代了。
2、第二个case是做一个web项目(应用元数据管理),前后端分离的;我们是先定义有哪些接口,然后再定义参 数、返回结果以及这个字段的含义;是面向文档交付的;每个接口开发完之后发布到测试环境,然后他去编写前 端接口调用测试;这种耦合度非常高,前端的节奏受制于后端的节奏。
3、前面两种面向的都是一个端,再到后来,开始做基础平台,面r向的有web、app(安卓、IOS),各种三方, 我们使用了开源社区的Yapi做了私有化部署,能够基本满足日常的的需求(也比较痛苦,后面会提到)。
API管理带来的好处
从前一节的case来看,API管理的过程是在逐步完善的,从以工程师视角管理到更规范化的基于管理工具的管 理;"口口相传"会随着工程师的更替而逐渐失去管控,直到无法追溯;基于文档的管理,从实际情况来看,两次变 更之后就会慢慢的弱化文档的地位(改一次接口,就得改-一次文档),取而代之的还是工程师主导;还有一点是, 不管是基于"口头协定"还是文档,接口在没有交付之前是不不具备可测试性的,而且面向的主体单一,一旦使用端的 数量多了,资源分散和协调的人力成本将指数级增长。
API管理不仅仅是提高技术能力,而是帮助推动业务更上一层楼,好的API管理可以带给我们的收益是非常大的。
【敏捷开发和快速业务支撑】:协助我们能够快速的创建、共享、监控和调整API,不需要额外的协同沟通成本 而导致生产力下降。
【工作流程自动化】:可以从 coding到CI再到API管理工作实实现自动化同步,绕过繁琐的APl设计、审核、 测试沟通等等;与现有的基础设施绑定起来,提高效率。
【维护数据完整性和安全性】:不会随着人员变动而导致API数女据丢失,API的变更可以通过管理平台的log逐 一追溯。