tangcent / easy-yapi

Generate API document to yapi
https://easyyapi.com
GNU Affero General Public License v3.0
439 stars 144 forks source link

[Feature] 想做一个文档自动化的场景,希望大佬能给予一点建议 #1093

Open xiaShisan opened 11 months ago

xiaShisan commented 11 months ago

Is your feature request related to a problem? Please describe.

背景:

我是一位后端开发人员,平时对接口文档的依赖较多。

目前用的是swagger的文档,可以随项目的编译自动生成(因为协同开发的人较多,所以期望选择自动化的文档插件)。但是swagger对代码侵入性较强,且依赖服务的发布成功与否。无法离线浏览(比如服务在未发布时)。

想尝试切换到yapi上,您发布出来的yapi插件非常的好用。最近在使用时有这么一个想法,能否将easy-yapi插件功能和一些自动化脚本结合如jekins,或gitlab的ci,以实现在项目编译时自动触发export-yapi的功能,希望您能给点建议😄

Describe the solution you'd like

尝试的思路:

有下载easy-yapi的源码阅读,奈何我对kt的语法实在有点脑壳痛😭,平时使用java+maven为主,groovy和gradle有一点点的使用经验。kt或函数式语法较多的语言接触比较少。

我尽量理一些与export的主线流程去看,比如: com.itangcent.idea.plugin.api.export.yapi.YapiApiExporterTest.DirectorySpringYapiApiExporterTest#testExportSpring //单元测试入口 com.itangcent.idea.plugin.actions.YapiExportAction // 似乎是yapi的插件实现类

您似乎是以

  1. 扫描idea项目资源 -> 2. 反射提取 getMapping postMapping等资源代码 -> 3.调用yapi-api生成文档... 这个流程进行的编码(可能有不对的地方😊)

有没有方式从这个流程中切除几个点出来,比如增加一个入口可以指定代码存放目录(比如jekins从gitlab上pull下来的代码库),然后在执行上述流程的 【2. 3】 步骤,使用您的扫描和生成文档的功能 ?

Describe alternatives you've considered

有参考这个文档 https://int32.me/blog/2020/06/27/cicddocs/

文档中描述通过gitlab的ci功能实现和maven的插件实现了自动化生成javadoc

Additional context

只是一个场景想法,如造成困扰请包涵😄 感觉在您的easy-yapi基础上有希望达到这样一个效果。 我会接着尝试阅读您的源码,也学习一下kt。

重要: 如果您觉得在这份源码的基础上无法实施这套方案的话,请您回复我一下,我尽快去找其他的替代方案。

如果您觉得可行或有其他的意见,可以给我指出一些源码中的关键点Thanks♪(・ω・)ノ,

文字较多,希望您不忙的时候可以给与一些支持回复,十分感谢~

tangcent commented 11 months ago

可以看看之前的issue: #515, #723, #337 另外github上应该有一些开源项目是用maven/gradle实现文档解析的,你可以搜索看看。

我一直有这个疑问: 是否需要考虑不同的分支上同时上传导致文档不一致问题? 当不同的分支同时在开发时,文档被来回覆盖,似乎是个问题?