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

Shi*_*rru 6 java swagger-ui swagger-2.0

我正在使用 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;
}
Run Code Online (Sandbox Code Playgroud)

注意:@Data 是 Lombok 注释,它生成 getter、setter 和其他一些东西

当我访问 swagger 页面上的示例模型时,“id”字段正确隐藏在示例 json 中,并在响应模型中可见。但是“searchAnnouncement”并未隐藏在示例 json 中。

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

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

{
    "searchAnnouncement": {
         "id": 0,
    },
}
Run Code Online (Sandbox Code Playgroud)

简而言之,我的问题是:

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

编辑:忘记提及我目前在我的依赖项中有 2.9.2 版的 swagger2 和 swagger-ui,但我从 2.8.0 升级希望隐藏这个嵌套对象

小智 1

我遇到了同样的问题,我通过设置jsonIgnore我的设置器来解决它。我正在使用依赖版本 2.9.2。