Сгенерированный Swashbuckle Swagger создает дубликат пути к версии в Azure API Management - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь настроить управление API Azure для использования управления версиями и заставить его работать с документом Swagger / Open API, сгенерированным Swashbuckle.

У меня есть API с 2 версиями - 1.0 и 2.0.Я настроил Swashbuckle для создания 2 отдельных документов Swagger, по одному для каждой версии.Все хорошо.

Схема управления версиями - по пути, поэтому потребители должны вызывать правильный путь (v1.0 или v2.0).Вот так: https://someurl/v1.0/some/thing

Я определил обе версии в Azure API Management и импортировал оба документа.

Проблема заключается в том, что Azure API Management добавляет путь к базовому URL-адресу, а затем из-за того, что путь, который определен в сгенерированном Swashbuckle документе Open API, заканчивается на https://someurl/v1.0/v1.0/some/thing в Azure.Управление API.

Ниже приведен фрагмент сгенерированного Swagger / Open API ...

enter image description here

И настройки версии API вУправление API Azure ...

enter image description here

И полный URL-адрес в управлении API Azure ...

enter image description here

Итак, мои вопросы: как мне сгенерировать документ Swagger, используя Swashbuckle или любой другой инструмент, чтобы я мог поддерживать управление версиями Azure API Management с помощью схемы управления версиями пути.

Спасибо заранее!

1 Ответ

0 голосов
/ 24 октября 2018

Поскольку сама спецификация OpenAPI не позволяет определять схему управления версиями, невозможно определить намерение пользователя на уровне APIM.Кто-то может захотеть импортировать API с /v1.0/ в пути как отдельный API, а кто-то другой, как и в вашем случае, хочет установить версию API +.По умолчанию APIM не создает и не обновляет наборы версий при импорте API, поэтому на данный момент единственным способом является удаление префиксов /v1.0 из спецификации OpenAPI перед импортом в APIM.

Модель домена APIM позволяетуправляйте схемой управления версиями (префикс пути, имя / значение заголовка, имя / значение параметра запроса) на уровне набора версий API, чтобы вам не приходилось дублировать /v1.0 при каждой операции вашего API.По своей природе, если ваш набор версий API настроен на использование префикса пути /v1.0, он будет добавлен ко всем путям API, включенным в этот набор версий.И это то, что производит удвоение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...