首篇文章:记录自己做的一个Java接口文档生成工具吧
Hi,很开心来到了这个平台。我是一个Java后端开发者~
这是我在这个平台的第一篇文章,想记录一下自己的第一个开源项目「lime-japi-docs」,虽然这个项目很久之前就出第一个小版本了,当时感觉做的不是很好,所以一直没有写跟大家文章分享分享~
怎么会想要做一个这样的工具呢?
作为一个后端开发者,时常会被前端小伙伴催接口文档呀!
最开始只能手搓文档给前端小伙伴,结果就是接口越写越多,旧接口也还要及时更新,越来越多的时间搭到写文档里去了!
后来在也找到了一些可以直接生成接口文档的项目(这些项目都很棒哦~),比如鼎鼎大名的swagger
,不过发现swagger
需要写很多的注解来描述接口,对源码的侵入性挺高的。然后发现了来自@YeDaxia
的项目 JApiDocs
,可以解析源码直接生成接口文档,用了好长一段时间,但是发现还是存在一些些满足不了的需求,所以就决定自己写一个吧!我的这个项目灵感和参考来源于JApiDocs
,也采用了解析源码的方式,还是想尽可能少的侵入源码。
做了决定就开干吧!
为了展示仪式感,我给这个项目取了个名字叫lime-japi-docs
,意为“青柠-Java接口-文档”,其实就是当时很喜欢喝小青柠水,所以就用了lime这个词,我还特地找小伙伴帮忙设计了个logo(下面的图片里会有),这有足够的仪式感了吧!
我希望这个项目是什么样的呢?
首先,我最希望这个项目会是个不侵入源码的存在,所以想做成一个单体服务,独立运行,配置个源码路径就能自己解析出个接口文档了;
其次,文档需要分享给前端小伙伴,如果使用文件形式的文档发来发去肯定不好更新,所以最好直接生成到前端页面,给他们发一个url直接访问就可以了,这样文档更新就方便多了;
然后,我们的项目一般也会做自动部署,所以希望能每次自动部署之后就会触发文档自己解析生成新版本(给个接口触发就完了呗),这样文档就能自动更新,前端小伙伴刷新一下页面即可,后端小伙伴呢就基本能省去关心文档的时间了;
有时,我们为了做接口权限可能会需要录入每一个接口数据,这时要是能得到这些接口数据入库,就不用一个个录入了,所以应该是需要一个解析核心包(确实也做了一个核心包「lime-japi-docs-parser」),这个包可以引入到项目中扫描源码得到接口数据,而当前的文档工具就只是这个核心包的一个实例!!!绝了!
再者,要是能在这个服务上配置上多个文档,那岂不是整个团队的文档就可以放到一起去管理了,就直接得到了一个文档中心,以后前端小伙伴找接口文档只需要在同一个url里了,完美~
最后,数不清的小想法多多……未实现的小想法多多……还没想到的小想法也多多多……
来看最终成果吧!
最终就是做成了一个单体springboot
项目,将前后端都打包到一个jar包里,直接运行这个jar包就可以开心的解析得到接口文档啦~
之前发布了一个比较简陋的1.0.1版本,起一个服务只能解析一个项目的源码来生成一份文档,配置也需要在application.yml
中配置(反正自己用的,所以不嫌麻烦了),刚好这次进行了一个升级!
这次把项目配置也做到前端页面上了,确实做到只有一个jar包了,还可自定义替换系统名称和logo什么的,反正更好了!
来看一下成果一些截图吧!
希望大家多多指教哦~
转载自:https://juejin.cn/post/7377195179760156711