Как избежать переопределения тегов классов с помощью методов тегов swagger? - PullRequest
0 голосов
/ 26 февраля 2020

Используя Swagger 1.5.24 и следуя документации , я написал swagger следующим образом:

@Path("/path1")
@Api(value = "Class for some requests", tags = {"Requests of type 1", "path1"})
public class Requests1 {

    @GET
    @Path("/request1")
    @ApiOperation(value = "Request 1 standard retriever", tags = {"standard", "version 1.0"})
    public Response getRequest1(..) { ... }

    @GET
    @Path("/request1/specific")
    @ApiOperation(value = "Request 1 specific retriever", tags = {"specific", "version 1.1"})
    public Response getRequest1specific(..) { ... }

    @POST
    @Path("/request1")
    @ApiOperation(value = "Request 1 standard inserter", tags = {"standard", "version 1.0"})
    public Response insertRequest1(..) { ... }

    @POST
    @Path("/request1/specific")
    @ApiOperation(value = "Request 1 specific inserter", tags = {"specific", "version 1.0"})
    public Response insertRequest1specific(..) { ... }

}

Я хочу получить список под тегами Запросы типа 1 и path1 для всех методов класса и для перечисления под тегами standard , версия 1.0 , указать c или версия 1.1 только методы с указанными тэзами.

Пример:

Запрос типа 1

  • Запрос 1 стандартного ретривера
  • Запрос 1 специфика c ретривер
  • Запрос 1 стандартного инсертера
  • Запрос 1 спецификатора c вставка
  • ...

Версия 1.1

  • Запрос 1 конкретный c Retriever
  • Запрос 2 стандартных устройства вставки
  • Запрос 5 ...

... и т. Д.

Проблема заключается в том, что настройка тегов для методов переопределяет теги класса , в результате чего е Список mpty для Запрос типа 1 и path1 .

Я пытался использовать атрибут @ Tag внутри @ Атрибут ApiOperation , но он показывает следующую ошибку:

Значение атрибута аннотации ApiOperation.tags должно быть константным выражением

1 Ответ

0 голосов
/ 26 февраля 2020

Я могу «избежать» этой проблемы, устанавливая теги класса для каждого метода, но это снизит читабельность тегов специфики.

Пример:

@Path("/path1")
@Api(value = "Class for some requests")
public class Requests1 {

    @GET
    @Path("/request1")
    @ApiOperation(value = "Request 1 standard retriever", tags = {"Requests of type 1", "path1", "standard", "version 1.0"})
    public Response getRequest1(..) { ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...