当前位置: 首页 > 知识库问答 >
问题:

排除swagger中groovy模型类的元类属性

姬银龙
2023-03-14

我们如何排除模型中“groovy”类的元类属性作为响应?我有一个Jax-Rs资源,它返回一个带swagger@ApiModel注释的groovy对象。我在swagger ui中看到了太多时髦的特定属性。如何从序列化中排除它?


@EqualsAndHashCode
@Document(collection = 'MongoCollection')
@CompileStatic
@ToString
@XmlRootElement
@XmlAccessorType(value = XmlAccessType.FIELD)
@ApiModel(value = "Represents a document from mongo collection")
class Foo {
..
..

}

它似乎在使用Jackson进行pogo json序列化?如何注释我的groovy类,将元类属性排除在json序列化字符串中?我试着使用JsonIgnoreProperties注释,但没用。

@JsonIgnoreProperties(ignoreUnknown = true, value = ["MetaClass","MetaMethod"])

共有3个答案

魏冷勋
2023-03-14

将Swagger升级为

湛财
2023-03-14

据报道,这可能是一个招摇的错误https://github.com/wordnik/swagger-core/issues/519.我从groovy切换到java类,以便从现在开始处理模型对象。我会在有时间的时候为这个问题做一个测试。

殷建弼
2023-03-14

如果使用springfox,请参阅springfox问题752,找到了解决此问题的方法:

docket.ignoredParameterTypes(groovy.lang.MetaClass.class)

一个代码示例是:

@Configuration
public class SpringFoxConfig {
     @Bean
     public Docket api() {
         return new Docket(DocumentationType.SWAGGER_2)
             .ignoredParameterTypes(groovy.lang.MetaClass.class)
             .select()
             .apis(RequestHandlerSelectors.any())
             .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
             .paths(PathSelectors.any())
             .build();
        }
    }
 类似资料:
  • 我想从类型中排除一个单独的属性。我该怎么做呢? 比如我有 我想排除属性 以获得

  • 除此之外,我还有一些rest控制器,它们在请求体中获得一个JSON。我使用这个模型从请求体获取JSOn。 生成的引用JsonNode定义是 现在,当我用这个API定义生成一个客户端库时,客户端允许的JsonNode对象只有布尔变量,我无法为它分配实际的JSON字符串,因此无法将JSON值传递给连接服务器(我从中生成了API定义) 谢谢(并为这篇冗长的帖子道歉)

  • 是否有任何方法可以在模型部分定义HashMap或泛型对象类型?我有一个返回产品的REST服务,这些产品可以有不同的选择。options属性基本上是一个HashMap,其中id是选项名,其值是选项值。

  • 问题内容: 我写了以下函数: 我想向函数添加类型注释: 但是,我想明确定义返回的字典内的值 不能 为None。 有没有办法说“类型,除”或“除”以外的所有可能值? 问题答案: 假设您愿意在调用函数时修复键和值的类型,则可以使用泛型来使其明确。这还可能会允许的情况下是,但它使意图很清楚。请注意,由于存在差异问题,因此必须使用。但是,无论如何这是优选的。 使用此定义,可以正确地将可选类型转换为非可选类

  • 我已经试过了,但是Swagger UI不能渲染它,所以我猜测它是错误的:

  • 嗨,我正在使用Core Swagger从Groovy类生成Swagger YML文件,但正在努力查看Groovy中的哪种类型会生成数组数据类型:[https://swagger.io/docs/specification/data-models/data-types/#array][1] 我的Groovy类如下: 但当我格雷德尔制造出一个大摇大摆的样子。yml没有数组类型: