【问题标题】:How to ignore class properties in Swagger如何忽略 Swagger 中的类属性
【发布时间】:2015-09-21 11:20:03
【问题描述】:

我的问题实际上很简单,有没有办法忽略已经由某些库或框架定义的类中的属性(例如,org.springframework.core.io.Resource)?我可以在自己的课程中通过@JsonIgnore 注释字段,但是如果我无法更改课程本身,有办法如何做同样的事情吗?

我想要这个,因为我要返回 ResponseEntity<Resource>,并且 Swagger-UI 会向我显示 Resource 的所有嵌套字段,例如

"url": {
   "authority": "string",
   "content": {},
   "defaultPort": 0,
   "file": "string",
   "host": "string",
   ....
}

我将 Springfox 与 Spring MVC(无 Spring Boot)一起使用,它们都是最新版本。此外,我现在不注释任何字段,我将所有工作留给 Swagger。

【问题讨论】:

    标签: java spring rest spring-mvc swagger


    【解决方案1】:

    不清楚你是想忽略类型本身还是只忽略它的某些属性?

    如果您想做后者,即修改您无法控制的类的表示,那么using mixins in jackson 应该可以解决您的问题。但是,这可能不是您想要做的。我的猜测是,您希望它按照应有的方式进行序列化,但您希望它在 swagger 服务描述中以不同的方式呈现。

    因此,在您的特定情况下,我建议创建一个备用类型规则 as described here,用 T 替换您服务中的所有 T 的 ResponseEntity<Resource<T>。链接中的示例适用于 Collection<T>,但它应该会引导您朝着正确的方向前进。

    【讨论】:

      猜你喜欢
      • 2018-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-13
      相关资源
      最近更新 更多