当前位置: 首页 > 知识库问答 >
问题:

更新由 Swagger 代码生成生成的代码

唐阳晖
2023-03-14

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

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

是否可以更新之前自动生成的现有代码而无需手动合并?

共有2个答案

贺佑运
2023-03-14

有同样的问题,我找到了从应用git开始的解决方案

  1. 提交当前状态
  2. 运行发电机
  3. 使用git暂存预期更改,但不暂存手动编辑的反转
  4. 提交并继续

我刚开始用这种方法,但它似乎至少对php-slim有效,在PHP-slim中,重新生成时只有一个文件(index.php)被改变。

冀景明
2023-03-14

我猜你说的是codegen生成的控制器,你已经实现了。它们在每次生成后都会被覆盖,这意味着您每次都必须手动合并代码来添加更改...这真的很烦人。

我能找到的最好的工作流程是使用< code>interfaceOnly选项在目标目录中只生成模型和html" target="_blank">接口类,然后手动创建实现这些接口的控制器。

假设你用另一个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。

干杯

 类似资料:
  • 我正在根据参考指南学习使用Map结构。日食验证是 面向Web开发人员的Eclipse Java EE IDE。版本:开普勒服务版本2 pom。xml如下所示,与参考指南相同 它表示在构建项目时将生成实现代码。但是,它似乎不会在目标/生成的源文件夹下生成

  • 我正在尝试使用 https://github.com/swagger-api/swagger-codegen 生成 nodejs 客户端 sdk 这是我使用的命令 但是对于我需要生成的实际sdk,swagger规范被拆分为两个不同的json文件,我想为两者创建一个sdk。我如何使用Swagger-codecen做到这一点,同时使用多个swagger json?

  • 我正在努力创建rest客户端,我将调用一个API来提供这个大的json输出。我想知道如何通过输入这个json来自动创建Pojo类来晃动代码gen,并让它为我创建我的pojo类,这将节省手动时间。这是我尝试过的 要为生成PHP客户端,请执行以下操作:http://petstore.swagger.io/v2/swagger.json,请运行以下命令: (如果您使用的是Windows,请将最后一个命令

  • 大多数Blockly应用程序需要将块转换为代码以执行。本页描述如何将代码生成器添加到自定义块。 首先,转到generators/目录并选择与您要生成的语言(JavaScript,Python,PHP,Lua,Dart等)相对应的子目录。假设您的代码块不适合现有类别,请创建一个新的JavaScript文件。这个新的JavaScript文件需要包含在<script ...>编辑器的HTML文件中的标记

  • Jboot 内置了一个简易的代码生成器,可以用来生成model层和Service层的基础代码,在生成代码之前,请先配置jboot.properties关于数据库相关的配置信息,Jboot 代码生成器会通过该配置去链接数据库。 jboot.datasource.type=mysql jboot.datasource.url=jdbc:mysql://127.0.0.1:3306/jbootdemo

  • 遵照此规范,在实际操作中,有许多重复。接下来推荐一款专为本规范量身定做的代码生成器 Laravel 5.x Scaffold Generator。 本扩展支持 5.1 ~ 5.5 版本的 Laravel。 只需要一个命令: 即可生成: $ php artisan make:scaffold Projects --schema="name:string:index,description:text:

  • 注: 内容来自官网资料 Java Generated Code 这个页面准确描述 protocol buffer 编译器为任何给定协议定义生成的java代码。proto2和proto3生成的代码之间的任何不同都将被高亮 - 注意在这份文档中描述的是这些生成代码的不同,而不是基本的消息类/接口,后者在两个版本中是相同的。在阅读这份文档之前你应该先阅读 proto2语言指南 和/或 proto3语言指

  • 我的项目需要能够同时安装 2 个或更多版本。据我所知,我找到的解决方案是更改安装程序每个版本的升级代码。 但是我想自动这样做。在常规GUID中,我只是使用“*”,但这不适用于升级解码。是否有一种方法可以在每个wix预构建或任何其他解决方案中生成新的升级解码?