我正在使用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批注,它会生成getter,setter和其他一些东西
当我在摇摇欲坠的页面上访问示例模型时,“ id”字段已正确隐藏在示例json中,并且在响应模型中可见。 但是“ searchAnnouncement”并没有隐藏在示例json中。
我试过了:但是在所有情况下,示例json都看起来像这样(id隐藏,并且searchAnnouncement可见):
{
"searchAnnouncement": {
"id": 0,
},
}
所以简而言之,我的问题是:
编辑: 忘了提一下,我目前在依赖项中拥有2.9.2版的swagger2和swagger-ui,但我从2.8.0升级到了希望隐藏此嵌套对象的地方
答案 0 :(得分:0)
我遇到了同样的问题,我通过在设置器上设置jsonIgnore
来解决此问题。我正在使用依赖版本2.9.2。
答案 1 :(得分:0)
使用swagger3
:
@JsonReadOnly
@Schema(description = "ID", accessMode = Schema.AccessMode.READ_ONLY)
private Long id;