Документация Swagger API через @ApiResponse с картой как responseContainer не работает - PullRequest
0 голосов
/ 01 мая 2020

У меня есть конечная точка, которая возвращает 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 это только делает меня Модель MyObject в качестве типа возврата, игнорируя Map с ключами String. enter image description here

Когда я объявляю конечную точку как (что я, наконец, буду не делать)

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

swagger ui визуализирует модель как ожидается: enter image description here

Мне не удалось найти какую-либо полезную документацию о карте как контейнере ответа.

Как объявить возвращаемую модель Map<String,MyObject в пределах @ApiResponse аннотации?

1 Ответ

0 голосов
/ 01 мая 2020

Попробуйте это

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