问题标签 [swagger-codegen-maven-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
5803 浏览

java - Eclipse 项目无法识别 Swagger Codegen 人工制品

我通过直接修改我的pom.xml文件将 Swagger Codegen 添加到我的 Eclipse 项目中:

如果我运行 Maven 更新或 Mavengenerate-sources目标,我会在我的 Eclipse 项目/target/generated-sources/swagger/src文件夹中生成所有的人工制品。

但是,Eclipse 无法识别它们。我应该像一些普通人一样手动编辑我的 Eclipse 构建路径,还是 Eclipse 应该自动识别这个新的源文件夹?

0 投票
1 回答
3830 浏览

java - 让 swagger codegen maven 插件从另一个 maven 依赖项访问 yaml 文件

我有一个用 Swagger 编写的 API,我想为其生成服务实现和客户端,它们必须位于单独的 maven 模块中。

我正在考虑将它们分成 3 个单独的 Maven 模块(或同一个父 pom 的子模块)。

然后在客户端和服务中我都会有swagger-codegen-maven-plugin. 这样,两者将保持同步,我将只从一个地方维护服务。其他客户端也可以依赖于api工件并从service.yamlSwagger API 定义生成他们的代码。

我的困难是如何让服务和客户端引用service.yaml另一个 Maven 依赖项?

这是我目前在 service 中拥有的pom.xml,但它指的是 service 模块的本地资源,而不是apimaven 依赖项。

不确定这是我必须从 Maven 做的事情,从另一个 maven 依赖项中引用资源,还是我必须在 swagger 插件配置中做的事情。

0 投票
1 回答
3215 浏览

swagger - 在 mustache 模板中访问 Swagger 代码生成模型变量

我正在尝试使用 swagger codegen(版本 2.3.1)创建我的第一个自定义代码生成器。我的问题是,我似乎无法访问模型的“变量”。我使用petstore.json示例作为输入,使用 swagger-codegen-maven-plugin 创建生成的源。

在我的小胡子模板中,我试图访问模型属性。这适用于“className”或“package”等属性,但我无法访问列表类型属性“vars”。使用“-DdebugModels”运行时,会显示变量,并且“hasVars”也会报告为真。但是在生成的代码中没有使用变量,并且“hasVars”似乎是错误的。我已经简化了我的模板以在此处显示。首先是模板:

这是 Pet 作为示例的输出:

我已经使用codegen 生成的存根开始了我的项目。这会生成一些小胡子模板,包括一个用于 api 的模板。此模板使用“操作”列表类型属性,效果很好。

这是我的代码生成器:

最后是codegen-maven-plugin的配置:

0 投票
1 回答
3624 浏览

java - 如何更新 RestTemplate 以正确映射 Java 日期?

我有一个问题是我的RestTemplate.postForEntity(url, restRequest, RepoResponse.class)呼叫失败,因为它无法反序列化表单的日期:

  • 2019-02-01T12:00:00.000-0500

因为时区中缺少冒号。

根据这个答案,看起来我想更改我的日期RestTemplate格式ObjectMapper

我在这里尝试了一个解决方案: https ://stackoverflow.com/a/38286322/14250

这给了我以下代码:

不幸的是,我收到以下错误

有没有一种简单的方法可以让 RestTemplate 支持上述日期时间格式?

0 投票
1 回答
3592 浏览

spring-boot - 如何使用修改后的 swagger 定义从 swagger-codegen-maven-plugin 重新生成源 Spring Boot 服务器代码

我的要求是我必须从 swagger 定义中生成 springboot 服务器代码。我在下面提到的命令的帮助下生成了代码(使用 swagger-codegen-cli-2.3.1.jar)。

现在,我们已经更新了 swagger 定义并想要重新生成结果模型和 api-invokers,为此我们想使用一个 maven 插件。在浏览了互联网上的各种答案后,我们发现了我们在 pom.xml 中添加的以下构建插件。

现在,当我们执行 mvn clean package 时,我们希望它更新/覆盖所有模型、api 和调用程序。但是,这是行不通的。我们看到了下面提到的异常。

所以,我们实际上需要插件来做以下事情,但我们无法弄清楚。a) 当我们运行 mvn clean package 时,它​​应该在源文件夹和目标文件夹中重新生成服务器存根的所有源代码。b) 如果类已经存在,它应该覆盖它们。我们想稍后在 .swagger-codegen-ignore 的帮助下处理覆盖。

我知道在stackoverflow上有很多关于这个的讨论线程,但我在这里找不到任何可以帮助我的解决方案。请帮助我或将我引导到相关线程。

0 投票
0 回答
850 浏览

swagger-codegen - 我可以让swagger-codegen忽略一些方法参数吗

swagger-codegen在我的 Maven 构建中使用为我的 REST 层生成 Java 接口。这很好用。但是,我想从生成的方法的参数列表中排除几个参数。

问题

是否可以让 swagger-codegen 排除某些参数(例如,按名称)?

代替

  • public Response getFromEndpoint(String userToken, String xRequestId, String foo)

我想得到

  • public Response getFromEndpoint(String foo)

我确实希望这些参数保留在文档中

为什么

我将在过滤器中使用省略的标题,但随后它们在生成的方法中变得无关紧要,所以我不希望它们在那里。
能够排除它们还有一个好处,那就是在我添加新的安全相关参数后,我不必在实现中修复每个方法签名。


我的设置

pom.xml

招摇的.yaml

0 投票
1 回答
994 浏览

swagger-codegen-maven-plugin - 如何通过swagger-codegen-maven-plugin在pom中生成maven-jar-plugin 3.1.2版本

我正在使用 swagger-codegen-maven-plugin 2.4.7 版本来生成项目。它生成 maven-jar-plugin 2.6 版本,但我需要 3.1.2 版本。

有没有办法生成自定义插件版本?

生成的 pom.xml:

想要 pom.xml:

0 投票
1 回答
266 浏览

java - 为什么@ApiModelProperty 注释的“示例”属性中有多余的反斜杠?

我使用 swagger-maven-plugin 从一个 api 方法源代码生成 yaml:

在生成的 yaml 中,我有:

之后,我使用 swagger-codegen-maven-plugin 将 api 方法生成回 java 并得到了这个:

还有更多 - 在为 tis api 方法生成的控制器中,我有另一个结果:

这里的代码被破坏了!\\" - 不是有效的序列

0 投票
1 回答
3712 浏览

java - 如何在 swagger codegen 中注入自定义弹簧验证?

我们能够使用 openApi 文档并使用 spring swagger-codegen 生成我们的 Java Input 类。此外,我们可以在为长度、强制等常见约束生成输入时注入 javax.validation 注释。

我想将此提升到下一个自定义级别,并能够使用与 Spring 的 @Constraint 注释挂钩的自定义验证注释来注释生成的输入类。这样我们就可以为我们的项目重用特定的验证。

我希望有一个开箱即用的解决方案。使用自定义验证注释生成 Input 类的首选方式是什么?

0 投票
1 回答
1891 浏览

java - 你如何让 maven swagger codegen 插件使用继承生成 Java 类?

在我们的 swagger.yaml 文件中,我们有一个定义Cat,用于allOf包含Pet.

期望是在生成 Java 源代码时,我们得到

这在使用Swagger Editor时有效。

swagger-codegen-maven-plugin不使用configOptionsset 时,我们得到以下结果:

Cat自己实现所有Pet的属性,而不是扩展它。

你如何告诉swagger-codegen-maven-pluginJava 使用继承(即extends)?(我们尝试了 spring 和 java 作为语言。)

这是一个示例 swagger.yaml 文件: