[原创]基于VueJs的前后端分离框架搭建之完全攻略 (2)

在上面这个流程中,API文档环节直接关系到了前端和后端两个开发团队,也是整个软件开发流程中耗时最大的环节。一旦API文档编写不合理,或者维护太麻烦,或者阅读不方便,将极大的影响开发效率,影响团队士气。而其他环节通常不会跨部门耦合,常用解决方案非常成熟,并且所消耗的资源也远不及开发团队,因此,API文档环节就变成了前后端分离团队中最关键的环节。

 

如果你曾经参与过前后端分离团队的开发工作,那你很可能对上文描述的场景深有体会。

 

接下来笔者说说为什么API文档服务器是最困难的环节。这也是为了让大家做足心理准备:搭建API文档服务器并没有想象那么容易。

 

首先,最大的难点在于这个世界上已经有大量现成的API文档服务方案,比如用Word/Excel来做API的载体,或者使用类似swagger这样的框架。我们大多数架构师,包括笔者在内,的第一反应就是找现成的,然后去对比各个现成的方案,对比每个方案的实施难度以及适用度。我们(指架构师们)最终找来找去,其实也没有找到一个完美的方案,但不得不从各个现成的方案中选择一个,我们很少去想有没有可能自己来搭建一个,即使有时候想着自己去搭建一个,但是往往一想到其中的困难(甚至无从下手)以及项目进度压力,可能就浅尝辄止了。

 

笔者的团队在2018年以前的项目中也使用过word文档和swagger,但我是一个追求完美的人,我一直没有停止思考去搭建一个完美的API文档服务器方案,直到2018年3月,终于灵光一现,解决了搭建过程中的一个关键问题(API版本管理),于是才有了我们团队的前后端分离之路。

 

其实,本文所阐述的方案对于使用者来讲也可以说是现成的了,因为每个人注册个账号就可以使用。但是本文的目的并不只是简单的告诉大家我们做了一个新的API文档服务器,而是想跟大家分享我们为什么要做这个文档服务器,以及为什么这样做。

 

3、为什么我们不用word文档作为API文档的载体?

用word文档(或者Excel)算是最落后的方式了吧,其缺点很明显:

(1)API一多,维护和阅读就变得极其困难;

(2)每次API文档修改之后,需要修改者自己去维护版本修改记录,这操作是违背人性的,并且如果想要基于单个API维护版本历史,那可以算得上违背天理了;

(3)在word里面写JSON格式的数据结构是很难的,如果用截图那就极大的增加了维护成本;

 

说完word文档的缺点,按照套路应该说说word文档的优点了吧。好吧,word文档的优点就是方便传播、离线阅读,但是除非你们项目的API文档的维护频率是按年计的,那还是早早放弃word吧。

 

4、为什么我们不用swagger(及类似方案)?

考虑到本文的读者有可能从未接触过swagger,笔者首先得说说swagger是做什么的,以及它的先进性(没有一定的先进性怎么会得到这么多人的追捧是吧)。

 

swagger是一个API文档生成框架,说白了它是一个类库,集成到系统之后,能够通过反射读取后端代码定义的API文档,java和.NET体系下都有对应的版本。

 

swagger最大的先进性:不需要专门有人来编写API文档,自动根据代码生成API文档,API文档维护成本极低。swagger还有其他一些小优点本文就不细说了,因为那些都不是大家选择swagger的主要原因。

 

那swagger到底有什么不够完美的地方让我们团队最终完全放弃了swagger?

 

swagger之不够完美的地方:

(1)通过swagger生成的API文档看不见版本修改记录,你不知道什么时候后端开发人员悄悄改了下API文档而忘记/有意不通知前端开发人员,这样的锅前端背了太多;

(2)接口文档由后端开发人员编写,前端开发人员的地位实际上比后端的低,并且前端开发人员仍然会经常找后端开发人员沟通修改API文档(强依赖仍然存在);

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpyjsj.html