Как получить список всех реализованных версий моего API? - PullRequest
0 голосов
/ 06 июня 2019

Я использую aspnet-api-versioning в моем проекте WebApi, и он отлично работает.Версии не жестко закодированы, они извлекаются из пространств имен.

Теперь я хотел бы получить список уже реализованных версий.Я хочу создать некоторую конечную точку (назовем ее GetApiVersions ), которую пользователь мог бы вызвать для получения простой коллекции существующих номеров версий API, например [1, 2, 3].

ВВ коде, отвечающем за выбор правильной версии API на основе полученного запроса (CurrentImplementationApiVersionSelector, SelectVersion метод), существует параметр ApiVersionModel со свойством ImplementedApiVersions.

Кажется, что свойство ImplementedApiVersions именно то, что мне нужно, но я не знаю, как получить к нему доступ в моей конечной точке GetApiVersions .Есть ли способ получить его?Или есть какой-либо другой способ программно получить список реализованных версий API?

1 Ответ

0 голосов
/ 29 июня 2019

@ Марта, какова твоя цель?Что вы ожидаете делать с версиями API после их получения?Это будет диктовать решение.

Если все, что вы хотите сделать, это сообщить эту информацию в запросах, это встроено;Вам нужно только включить его.

options.ReportApiVersions = true;

Это вернет заголовки api-поддерживаемых версий и api-deprecated-version .Вы можете увидеть эту и другую информацию в вики-разделе Version Discovery .

Вы также можете использовать метод расширения GetApiVersionModel для текущего выполняемого действия в вашем контроллере.Опять же - в зависимости от того, когда и где вы находитесь в конвейере, определяется, как вы извлекаете информацию.

Я надеюсь, что это поможет вам начать.Не стесняйтесь задавать больше вопросов.

...