Swagger Swashbuckle: конечные точки API POST с параметром запроса - PullRequest
0 голосов
/ 12 января 2019

Мне нужна помощь для перезаписи генератора сваггера для обработки конечных точек API с параметром запроса, который должен быть задокументирован в swashbuckle

Я нашел ссылку , где в Drastic Method объяснено, как перезаписать генератор чванства

Например: У меня есть две одинаковые конечные точки, определенные на маршруте:

  • POST / api / customer (шаблон маршрута -> / api / customer)
  • POST / api / customer? F = {f} & l = {l} (шаблон маршрута -> / api / customer)

Проблема с генератором сваггеров по умолчанию заключается в том, что он дает конфликты с одинаковыми конечными точками. Я попробовал ResolveConflictingActions метод из swashbuckle, но это не сильно помогло.

Нужна помощь с реальным рабочим кодом, который перезаписывает генератор swagger в swashbuckle и конечные точки документа с параметрами запроса, подобными этому image

1 Ответ

0 голосов
/ 16 января 2019

Ошибка, которую вы получаете от Swashbuckle, верна, вы пытаетесь создать несколько операций для одного и того же маршрута, параметры запроса не делают путь уникальным. Это нарушение спецификации Swagger. Из спецификации OpenAPI ...

Для каждого пути вы определяете операции (методы HTTP), которые можно использовать чтобы получить доступ к этому пути. OpenAPI 3.0 поддерживает get, post, put, patch, удалить, голова, параметры и трассировка. Один путь может поддерживать несколько операции, например, GET / users, чтобы получить список пользователей и POST / пользователи, чтобы добавить нового пользователя. OpenAPI определяет уникальную операцию как комбинация пути и метода HTTP. Это означает, что два ПОЛУЧИТЬ или два метода POST для одного и того же пути не допускаются, даже если они имеют различные параметры (параметры не влияют на уникальность).

Вы должны создать один путь с параметрами запроса, являющимися необязательными. В итоге у вас будет тот же API с совместимым определением чванства.

...