如何忽略 Swagger 中的 class 属性
How to ignore class properties in Swagger
我的问题其实很简单,有没有办法忽略类中的属性,这些已经被一些库或框架定义(例如,org.springframework.core.io.Resource
)?我可以在自己的 类 中通过 @JsonIgnore
对字段进行注释,但是如果我无法更改类本身,我有办法做同样的事情吗?
我想要这个是因为我要返回 ResponseEntity<Resource>
并且 Swagger-UI 向我展示了资源的所有嵌套字段,例如
"url": {
"authority": "string",
"content": {},
"defaultPort": 0,
"file": "string",
"host": "string",
....
}
我正在使用 Springfox 和 Spring MVC(没有 Spring 引导),它们都是最新版本。此外,我现在不注释任何字段,我将所有工作留给 Swagger。
不清楚你是想忽略类型本身还是只想忽略它的某些属性?
如果你想做后者,即修改你无法控制的 类 的表示,那么 using mixins in jackson 应该可以解决你的问题。但是,这可能不是您想要做的。我的猜测是您希望它按照预期的方式序列化,但您希望它在 swagger 服务描述中以不同的方式呈现。
因此,在您的特定情况下,我建议创建一个备用类型规则 as described here,用 T
替换您服务中的所有 T。 link 中的示例适用于 Collection<T>
,但它应该会引导您朝着正确的方向前进。
我的问题其实很简单,有没有办法忽略类中的属性,这些已经被一些库或框架定义(例如,org.springframework.core.io.Resource
)?我可以在自己的 类 中通过 @JsonIgnore
对字段进行注释,但是如果我无法更改类本身,我有办法做同样的事情吗?
我想要这个是因为我要返回 ResponseEntity<Resource>
并且 Swagger-UI 向我展示了资源的所有嵌套字段,例如
"url": {
"authority": "string",
"content": {},
"defaultPort": 0,
"file": "string",
"host": "string",
....
}
我正在使用 Springfox 和 Spring MVC(没有 Spring 引导),它们都是最新版本。此外,我现在不注释任何字段,我将所有工作留给 Swagger。
不清楚你是想忽略类型本身还是只想忽略它的某些属性?
如果你想做后者,即修改你无法控制的 类 的表示,那么 using mixins in jackson 应该可以解决你的问题。但是,这可能不是您想要做的。我的猜测是您希望它按照预期的方式序列化,但您希望它在 swagger 服务描述中以不同的方式呈现。
因此,在您的特定情况下,我建议创建一个备用类型规则 as described here,用 T
替换您服务中的所有 T。 link 中的示例适用于 Collection<T>
,但它应该会引导您朝着正确的方向前进。