Swagger codegen 忽略 POJO 类的空字段

Flo*_*Lei 5 jackson codegen swagger spring-boot

我正在制作一个 REST API,我想在类生成时添加 Jackson 注释以忽略空字段,因此我想仅为某些类添加此注释,而不是为洞项目添加此注释。

我知道这可以通过在 application.properties 中添加以下行来完成:

spring.jackson.default-property-inclusion=non_null
Run Code Online (Sandbox Code Playgroud)

但这是针对整个项目的。

我看到有一些“.mustache”文件

- api.mustache
- apiController.mustache
Run Code Online (Sandbox Code Playgroud)

我想我必须在其中之一添加一些代码,或者我应该在 application.yml 中插入一些代码?

我还将 Spring Boot 与 Swagger-codgen 一起使用。

预先感谢您,祝您有美好的一天!

Flo*_*Lei 4

好吧,经过几个小时的研究,我发现因为我使用的是 Swagger-codegen,所以我必须在https://github.com/swagger-api/swagger-codegen中搜索有关 Swagger-Codegen 的所有答案。这是所有模板,我发现我需要将以下两个文件添加到我的项目中

  • pojo.mustache
  • xmlAnnotation.mustache

您可以找到上述文件的路径是

swagger-codegen/modules/swagger-codegen/src/main/resources/JavaSpring/
Run Code Online (Sandbox Code Playgroud)

更重要的是,这些文件是生成 Pojo 类的简单模板,因此您需要@JsonInclude(JsonInclude.Include.NON_NULL)在 pojo.mustache 文件中添加注释,位于 with 行上方,public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}}...以便在生成 pojo 类时插入。

完成后,再次构建您的项目!:)

  • 我很好奇 swagger 是否支持这一点而不需要编辑他们的代码。 (2认同)