【问题标题】:Swagger codegen ignore null fields for POJO classesSwagger codegen 忽略 POJO 类的空字段
【发布时间】:2017-12-15 07:44:14
【问题描述】:

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

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

spring.jackson.default-property-inclusion=non_null

但这是针对整个项目的。

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

- api.mustache
- apiController.mustache

我想我必须在其中一个中添加一些代码,还是应该在 application.yml 中插入一些代码?

我也在使用带有 Swagger-codgen 的 Spring Boot。

提前感谢您,祝您有美好的一天!

【问题讨论】:

标签: spring-boot jackson swagger codegen


【解决方案1】:

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

  • pojo.mustache
  • xmlAnnotation.mustache

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

swagger-codegen/modules/swagger-codegen/src/main/resources/JavaSpring/

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

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

【讨论】:

  • 我会很好奇 swagger 是否支持这一点而无需编辑他们的代码。
【解决方案2】:

你可以尝试在application.yaml下面设置属性

spring.jackson.default-property-inclusion = NON_NULL

这对我来说可以从响应中过滤掉空值。

【讨论】:

    猜你喜欢
    • 2017-08-17
    • 2022-09-24
    • 1970-01-01
    • 2014-09-27
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 2023-02-25
    • 1970-01-01
    相关资源
    最近更新 更多