Повторяющиеся записи в 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:

Swagger UI

Те два GET /versions фактически одно и то же, но у них разные типы возвращаемых значений, поэтому Swagger хочет, чтобы они были разными.

Я хотел бы свернуть эти два. Какие у меня варианты здесь?

[Вероятно, стоит указать, что я использую плагин Swagger Maven для генерации документации. Приложение также использует Guice для DI и Jersey для JSON-представлений.]

1 ответ

Решение

Я прочитал в https://github.com/swagger-api/swagger-spec/issues/146:

для каждого дизайна мы не перегружаем определения типов ответов для одного и того же кода ответа.

Поэтому я думаю, что плагин Maven создает недопустимый документ Swagger.

Какие у вас варианты?

Другие вопросы по тегам