Swagger在204上生成响应主体(无内容)

问题描述 投票:2回答:1

这是一个删除端点:

@ApiOperation(value = "delete subscription")
@ApiResponses(value = {
                @ApiResponse(code = 204, message = "Deleted", response = Void.class),
                @ApiResponse(code = 404, message = "Not Found")
})
@DeleteMapping("/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public ListenableFuture<ResponseEntity<Void>> delete(@PathVariable long id)

Springfox使用响应主体生成API规范:

{
  "cancelled": true,
  "done": true
}

显然我希望204的响应体规格是空白的。如何实现这一目标?

注:如果我改变端点是同步的:

public void delete(@PathVariable long id)

然后生成的API很好。

java spring swagger springfox
1个回答
1
投票

尝试添加

.genericModelSubstitutes(ListenableFuture.class)

你的Docket配置支持ListenableFuture<T>

文件:http://springfox.github.io/springfox/javadoc/2.7.0/springfox/documentation/spring/web/plugins/Docket.html#genericModelSubstitutes(java.lang.Class...)

用它的直接参数化类型替换每个泛型类。 genericModelSubstitutes(ResponseEntity.class)将使用MyModel替换ResponseEntity <MyModel>

例如:

return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.any())
            .paths(PathSelectors.any())
            .build()
            .genericModelSubstitutes(ListenableFuture.class);
© www.soinside.com 2019 - 2024. All rights reserved.