我正在开发一个API (Spring ),它使用的是openapi2.0版本,它还在pom.xml中使用了pom.xml插件。
我最近做了一个LinkedIn学习课程,我们使用Swagger (本地使用Docker)编写api规范(openapi3.0),并以您选择的任何语言“导出”Server,在本例中是Java。我注意到控制器实现的API类已经在这个存根中生成了。但是,当使用swagger-codegen-maven-plugin时,直到编译项目(mvn install)才会生成这些接口,对于您定义的任何数据结构(例如,在swagger yaml的“定义”部分中定义的请求主体),模式也是如此。
我想问一下这里构建API的首选方法是通过web还是在本地使用Swagger编辑器,然后用yaml编写规范,然后在您选择的语言/框架中导出Server,还是在本地手动编写一些类(即使您添加了swagger,看起来仍然需要为控制器等编写代码)。使用这种方法,如果我错了,请纠正我,即IntelliJ使用Spring,然后在您的项目中添加swagger-codegen-maven-plugin,让它为您生成接口/具体类吗?
发布于 2021-02-23 12:17:21
我更喜欢使用Maven插件。
在Maven生命周期的编译阶段生成服务器存根没有什么问题:运行它,得到存根,然后开始使用它们。
Maven插件的优点是可以配置生成器的输出:例如,您可以设置包名、后缀或模型名称的前缀,无论是只生成接口还是只生成存根实现。
这是maven插件配置的完整列表,在这里您可以找到弹簧特定选项。使用Swagger web生成器,据我所知,您不能配置任何东西。
在使用maven插件时,唯一要记住的是不要手动修改生成的代码,否则每次运行它时,都会丢失手动更改。因此,您的实际实现代码将需要实现生成的API接口或扩展生成的API控制器。或者更好地生成代码,并将delegatePattern选项设置为true,并实现生成的委托接口。
https://stackoverflow.com/questions/66337117
复制相似问题