Swagger API文档中的泛型

时间:2019-08-06 13:18:03

标签: spring rest swagger swagger-ui

我在这个话题上发现了几个话题,但没有一个真的令人满意。

我将PageResource 对象用于我的集合资源(其中Entity是此集合的单个资源的类)。集合资源控制器返回ResponseEntity <?>,它可以是404(空主体),也可以是内容,它是PageResource 。它非常灵活,我喜欢这个。 PageResource只是将一些_links添加到页面中以实现HATEOAS兼容性。

控制器示例:

ts-jest

但是现在在招摇的文档中,它显示如下:

public ResponseEntity<?> getAllPaginated(*snip*) {
    ...
    return this.get404();
    ...
    return ResponseEntity.status(HttpStatus.OK).body(new PageResource<Entity>(page, request));
}

我希望它显示PageResource

我可以通过将PageResource 设置为控制器方法的返回类型来实现此目的。但是它并不总是返回PageResource。 responses: 200: description: "OK" schema: $ref: "#/definitions/PageResource" 查询字符串参数值太大会导致404。这里没有PageResource,因为404主体中没有内容。有解决这个问题的优雅方法吗?

@ApiOperation在响应值中不支持泛型。添加一个扩展我的PageResource 的自定义内部类并将其设置为@ApiOperation中的响应值也不能解决该问题,因为这仅显示了$ ref下的CustomClass,而没有任何泛型。

0 个答案:

没有答案