Повторяющиеся записи в Swagger
Я пишу API с использованием библиотеки HalBuilder для представлений HAL.
В настоящее время мне нужно иметь два разных метода для представлений JSON и HAL. В качестве примера мой VersionResource
включает в себя следующие два метода:
@GET
@ApiOperation(value = "Find all versions", response = Version.class, responseContainer = "List")
@Produces({MediaType.APPLICATION_JSON})
public Response getAsJson() {
List<Version> versions = repository.selectAll();
return Response.ok().entity(versions).build();
}
@GET
@ApiOperation(value = "Find all versions", notes="Returns HAL format", response = Representation.class, responseContainer = "List")
@Produces({RepresentationFactory.HAL_JSON})
public Representation getAsHalJson() {
List<Version> versions = repository.selectAll();
return this.versionRepresentationFactory.createResourceRepresentation(versions);
}
(Примечание: я уверен, что есть лучший способ свернуть эти методы, и я ищу способ сделать это)
Но моя непосредственная проблема заключается в том, что использование двух методов приводит к дублированию записей в моей документации Swagger:
Те два GET /versions
фактически одно и то же, но у них разные типы возвращаемых значений, поэтому Swagger хочет, чтобы они были разными.
Я хотел бы свернуть эти два. Какие у меня варианты здесь?
[Вероятно, стоит указать, что я использую плагин Swagger Maven для генерации документации. Приложение также использует Guice для DI и Jersey для JSON-представлений.]
1 ответ
Я прочитал в https://github.com/swagger-api/swagger-spec/issues/146:
для каждого дизайна мы не перегружаем определения типов ответов для одного и того же кода ответа.
Поэтому я думаю, что плагин Maven создает недопустимый документ Swagger.
Какие у вас варианты?
- Будьте терпеливы и следите за этими проблемами Swagger: https://github.com/swagger-api/swagger-spec/issues/146 и https://github.com/swagger-api/swagger-spec/issues/182
- Не используйте Swagger