我有一个返回 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 作为返回类型,忽略 Map
与 String
键。
当我声明端点时(我最终将不这样做)
public Map<String,MyObject> doStuff(){
...
}
我无法找到任何有关将 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/