Swagger-ui不会从示例正文中隐藏readOnly嵌套对象

问题描述 投票:4回答:1

我正在使用swagger-ui和lombok开发spring-boot应用程序。目前,我正在尝试从请求正文中隐藏嵌套对象,但仍在swagger-ui页面上的示例json中显示。

我的课堂上有注释(简化为仅相关内容):

@Data
@ApiModel(description = "Character model")
public class Character {

    @ApiModelProperty(readOnly = true)
    private Long id;

    @ApiModelProperty(readOnly = true)
    private SearchAnnouncement searchAnnouncement;
}

注意:@Data是Lombok注释,它会生成吸气剂,设置器和其他一些东西

[当我访问摇摇欲坠的页面上的示例模型时,“ id”字段已正确隐藏在示例json中,并且在响应模型中可见。但是“ searchAnnouncement”没有隐藏在示例json中。

我试过了:
  • 使用readOnly = true
  • 使用accessMode = ApiModelProperty.AccessMode.READ_ONLY
  • 使用@Setter(AccessLevel.NONE),它防止了该字段的setter的生成,因为我在某处读到某处正在检查setter是否存在并根据该值设置readOnly
  • 以上不同组合

但是在所有情况下,示例json都看起来像这样(隐藏了id,可见searchAnnouncement):

{
    "searchAnnouncement": {
         "id": 0,
    },
}

总之,我的问题是:

是否可以从示例json嵌套对象中隐藏?

编辑:忘了提一下,我目前在依赖项中有2.9.2版的swagger2&swagger-ui,但我从2.8.0升级到希望隐藏此嵌套对象的地方

java swagger-ui swagger-2.0
1个回答
0
投票

我有同样的问题,我通过在设置器上设置jsonIgnore来解决。我正在使用2.9.2版本的依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.