java—生成swagger api的最佳方法?i、 e.codegen vs swagger编辑器(spring boot api)

lo8azlld  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(469)

我正在开发一个api(SpringBoot),它有点传统——它使用的是openapi 2.0版本,它还使用 swagger-codegen-maven-plugin pom.xml中的插件。
我最近做了一个linkedin学习课程,我们使用swagger编辑器(本地使用docker)编写api规范(openapi 3.0)并用您选择的任何语言“导出”服务器存根,在本例中是JavaSpring。我注意到控制器实现的api类已经在这个存根中生成了。但是,当使用swagger codegen maven插件时,这些接口在编译项目(mvn install)之前不会生成,对于您定义的任何数据结构(例如swagger yaml的“定义”部分中的请求体)的模式也是如此。
我想问一下构建api的首选方法是什么-是通过web gui使用swagger编辑器,还是在本地用yaml编写规范,然后用您选择的语言/框架导出服务器存根,还是在本地手动编写一些类(即使您添加了swagger yaml,看起来你还得为控制器等编写代码。。使用这个方法,如果我错了,请纠正我)即intellij使用spring,然后将swagger codegen maven插件添加到您的项目中,并让它为您生成接口/具体类?

xvw2m8pv

xvw2m8pv1#

我更喜欢使用maven插件。
在maven生命周期的编译阶段生成服务器存根没有错:运行它,得到存根,然后开始使用它们。
maven插件的优点是您可以配置生成器的输出:例如,您可以为模型名设置包名、后缀或前缀,无论您是只想生成接口还是还想生成存根实现。
下面是maven插件配置的完整列表,您可以在这里找到特定于spring的选项。据我所知,使用swagger web生成器,您无法配置任何内容。
使用maven插件时唯一要记住的是不要手动修改生成的代码,否则每次再次运行它时,都会丢失手动更改。因此,您的实际实现代码将需要实现生成的api接口或扩展生成的api控制器。或者更好地生成delegatepattern选项设置为true的代码,并实现生成的委托接口。

相关问题