gpt4 book ai didi

java - Swagger 在 204(无内容)上生成响应正文

转载 作者:行者123 更新时间:2023-11-30 10:18:56 27 4
gpt4 key购买 nike

这是一个删除端点:

@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 就可以了。

最佳答案

尝试添加

.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...)

Substitutes each generic class with it's direct parameterized type. genericModelSubstitutes(ResponseEntity.class) would substitute ResponseEntity<MyModel> with MyModel

例如:

return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.genericModelSubstitutes(ListenableFuture.class);

关于java - Swagger 在 204(无内容)上生成响应正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48989129/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com