gpt4 book ai didi

java - Swagger API 文档通过@ApiResponse 与映射作为responseContainer 不起作用

转载 作者:行者123 更新时间:2023-12-01 16:59:04 29 4
gpt4 key购买 nike

我有一个返回 Map<String,MyObject> 的端点

public Response doStuff(){
Map<String,MyObject> map = getMap();
return Response.ok(map ).build();
}

因此,我厌倦了将 API 描述如下:

@ApiResponses({@ApiResponse(code = 200, message = "OK", response = MyObject.class, responseContainer = "Map[String,MyObject]")}
public Response doStuff(){
Map<String,MyObject> map = getMap();
return Response.ok(map ).build();
}

在 swagger UI 中,这只会呈现 MyObject model 作为返回类型,忽略 MapString键。 enter image description here

当我声明端点时(我最终将这样做)

public  Map<String,MyObject> doStuff(){
...
}

swagger ui 按预期渲染模型: enter image description here

我无法找到任何有关将 Map 作为响应容器的有用文档。

如何声明 Map<String,MyObject 的返回模型@ApiResponse内注释?

最佳答案

根据 Swagger 文档,responseContainer 的唯一有效值是“List”、“Set”或“Map”。任何其他值都将被忽略: https://docs.swagger.io/swagger-core/v1.5.0/apidocs/io/swagger/annotations/ApiOperation.html#responseContainer()

所以尝试一下

responseContainer = "Map"

而不是

responseContainer = "Map[String,MyObject]"

关于java - Swagger API 文档通过@ApiResponse 与映射作为responseContainer 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61541453/

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