如何高效维护API文档,不妨看看这个(原标题: Tornado集成Swagger使用调研) |
您所在的位置:网站首页 › 车辆底盘检测仪 › 如何高效维护API文档,不妨看看这个(原标题: Tornado集成Swagger使用调研) |
文章目录
前言文档的好处与“坏处”几种比较流行的工具confluenceRay2Swagger基本用法:编写Swagger API Spec高级用法:集成后自动生成API文档关于Tornado集成Swagger
总结参考文档
前言
开篇首先给出结论,目前tornado与swagger的集成程度并不高,如果想要通过swagger自动生成API,需要对其进行深度定制,下面给出调研的一些结果 商业项目中,随着迭代的速度越来越快,与之相应的文档维护变得越发麻烦。 久而久之,项目文档与当前项目代码版本差的越来越远,便失去了其价值 本地调研的目的是找到一种能够高效维护API文档的解决方案。 文档的好处与“坏处”一个项目中,文档是不可或缺的组成部分,其中比较重要的有: API接口文档业务说明文档好的文档可以: 降低项目依赖人的重要性,不会因为人员流动而导致项目无法正常运转,也可以让接手项目的人,快速上手;可以提高人的写作、语言组织能力;可追溯性,不至于有问题无从查起,做到有理有据;当然写文档也有“坏处”,那就是费时费力,如果文档不及时更新,甚至会给后来接手项目的人造成不必要的困扰。
说了是Wiki软件,那么基本是什么文档都可以往上面放,接口文档自然不在话下,并且能够团队协同编辑,内置的富文本编辑器也是十分的好用,谁用谁知道~ 关键是上手完全没有任何难度,如果目前还没有使用类似的文档管理系统,那么confluence非常值得一试 这里就不多详细描述了,网上教程很多,贴一个博客链接,有兴趣的可以自己摸索一下 But,尽管confluence很好用,它仍然没有解决文档维护困难的问题,你还是要手动在编辑器上自己写文档。 Ray2当我看到Ray的时候,这个工具已经出到2了,由于老版本的ray已经不在维护,所以这里就直接介绍Ray2 Ray2相较于confluence,其功能更加的专一,它就是一个专门用来管理API接口文档的平台 首先,Ray2是开源的,由阿里妈妈前端团队维护(阿里出品,必属精品~) 这是Ray2的github地址 同样的上手非常简单,并且可以无需安装直接体验,地址就在上面github的README下面 简单来看一下界面 从编写方式来讲,Ray2提供了非常高效的API文档模版,我们只需要往模版里面填写数据,就可以快速编写API接口文档,这相较于在confluence下一个字一个字的码,无疑更进了一步。 Swagger使用Ray2维护API文档已经十分高效了,但是归根结底,还是需要人去手动维护的,那么有没有更加强大,便捷的文档维护方式呢,答案是YES,就是下面即将介绍的 Swagger Swagger是一种Rest API的 简单但强大的表示方式,它是标准的,语言无关,这种表示方式不但人可读,而且机器可读。 可以作为Rest API的交互式文档,也可以作为Rest API的形式化的接口描述,生成客户端和服务端的代码。 网上找的Swagger生态使用图 首先说说,swagger-editor,它是swagger提供的在线文档编辑器,编辑器传送门,长这个样子 其中Swagger API Spec就是Swagger提供的用来描述Rest API的语言。 Swagger API Spec对Rest API的每一个操作的请求消息的参数(Path,Query,Body,Form),响应消息的状态码和消息体的json结构都进行了详细的描述。不仅可以供给使用API的开发者学习,而且是对Rest API接口的形式化的抽象。 关于Swagger API Spec,如果想了解更多的话,可以戳这里 和rap不同的是,渲染后的页面不可以编辑。但是可以直接在页面上模拟真实的请求操作。 生态图里面另外几个东西就不多做介绍了,swagger-codegen倒是有点说法,这个工具的功能就是根据接口文档生成相应的代码。 既然可以通过文档生成代码,那当然可以通过扫描代码自动生成API文档喽~ 高级用法:集成后自动生成API文档通过在项目代码中进行一系列的配置,我们可以通过swagger直接生成项目的API文档,这下牛逼了,文档跟着代码走,代码更新,文档自动更新,不用手动维护了。 这才是swagger的正确使用姿势~ 由于各个项目,框架的配置方式不同,这里就不展开来说了。目前以python框架作为开发的项目中集成的比较好的有:Django,Flask,Fastapi 关于Tornado集成Swagger比较遗憾的是,Tornado对于swagger的集成程度并不高。如果想要在Tornado中使用swagger的话,只能在接口方法的__doc__中编写Swagger API Spec,像这样: 使用到的第三方库,有兴趣的可以看看,github tornado-swagger 或许我们可以针对Tornado集成swagger进行一些定制,使之能够自动生成API文档,但从目前来讲,要完成这个目标,需要比较大的工作量。 总结我们已经看了几种工具,都从不同程度上帮助我们提升了文档维护的效率,那么到底该选择哪一种呢? 我的建议是: confluence + (Ray2 or Swagger) 从功能上看,confluence是非常推荐使用的。Ray2和Swagger,则根据情况二选一即可,毕竟API文档还是需要统一管理的根据不同的场景,总有一款适合你~ 参考文档Swagger.io Swagger:Rest API的描述语言 Swagger Editor ray2 tornado-swagger |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |