3

我们如何将“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"])
4

3 回答 3

5

如果使用 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();
        }
    }
于 2017-03-02T13:58:28.927 回答
0

根据https://github.com/wordnik/swagger-core/issues/519,这可能是 swagger 中的一个错误。我从 groovy 切换到 java 类,以便现在继续进行模型对象。当我有时间时,将致力于为这个问题创建一个测试。

于 2014-04-08T16:32:21.023 回答
-1

将 Swagger 升级到 >= 1.3.5 的版本应该可以解决此问题。

于 2014-06-30T17:56:42.627 回答