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

sum*_*n j 3 groovy jackson swagger swagger-ui

我们如何在“常规”类的模型中排除元类属性作为响应?我有一个 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"])

btp*_*ka3 5

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

docket.ignoredParameterTypes(groovy.lang.MetaClass.class)
Run Code Online (Sandbox Code Playgroud)

一个代码示例是:

@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();
        }
    }
Run Code Online (Sandbox Code Playgroud)