小编典典

Swagger代码生成的更新代码

spring-boot

我已经在Spring使用swagger code-gen从swagger.yaml文件生成了代码。

现在,我已经为我的API更新了swagger.yaml文件,并添加了一些其他HTTP操作。

是否可以在不手动合并的情况下自动更新以前生成的现有代码?


阅读 701

收藏
2020-05-30

共1个答案

小编典典

我想您正在谈论的是由代码生成器生成的控制器,然后您已经实现了。它们在每一代之后都会被覆盖,这意味着您将不得不手动合并代码以每次添加更改……这
确实很烦人

我能找到的最好的工作流程是使用该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>

您可以在此处使用带有swagger-
codegen-maven-plugin的Spring Boot检查完整的示例项目。

干杯

2020-05-30