我在 spring 中使用 swagger codegen 从 swagger.yaml 文件生成了代码。
现在,我已经更新了 API 的 swagger.yaml 文件,并添加了更多 HTTP 操作。
是否可以更新之前自动生成的现有代码,而无需手动合并?
我猜你正在谈论由 codegen 生成的控制器,然后你已经实现了。它们在每次生成后都会被覆盖,这意味着您每次都必须手动合并代码以添加更改......这就是真烦人.
我能找到的最好的工作流程是使用interfaceOnly
选项仅在目标目录中生成模型和接口类,然后手动创建实现这些接口的控制器。
假设您使用另一个 GET 操作更新 API 规范文件,使用该新操作重新生成界面,您只需调整控制器即可实现该新方法(使用现代 IDE 超级快速且简单),其他一切都保持不变相同,您可以更好地控制代码(将控制器拆分到不同的文件夹中......等等)。
这是我用于插件的配置:
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.2.3</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>./api-contract/petstore.yml</inputSpec>
<language>spring</language>
<configOptions>
<sourceFolder>swagger</sourceFolder>
<java8>true</java8>
<interfaceOnly>true</interfaceOnly>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
您可以使用 Spring Boot 和 swagger-codegen-maven-plugin 检查完整的示例项目here https://github.com/thomasJoei/swagger-codegen-springboot.
Cheers
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)