Поделиться через


Поиск запросов API непроизводства с помощью прокси-сервера разработки

При создании приложения вы можете использовать API, которые по-прежнему находятся в предварительной версии. При интеграции с новыми функциями, которые создаются вместе с приложением, часто используются api предварительной версии. Перед выпуском приложения в рабочую среду необходимо убедиться, что вы используете API уровня рабочей среды. При использовании стабильных API, которые поддерживаются и охватываются соглашениями об уровне обслуживания (соглашения об уровне обслуживания), ваше приложение является более надежным.

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

Снимок экрана: консоль с проверкой прокси-сервера разработки, если записанные запросы API соответствуют API рабочей версии, зарегистрированным в Центре API Azure.

Перед началом работы

Чтобы обнаружить запросы API непроизводства, необходимо иметь экземпляр Центра API Azure со сведениями об API, используемых в вашей организации. Если вы еще не создали его, см . краткое руководство. Создание центра API. Кроме того, необходимо установить прокси-сервер разработки.

Регистрация API в экземпляре Центра API

Зарегистрируйте API, используемые в вашей организации. Для каждого API определите используемые версии и укажите их этап жизненного цикла.

Снимок экрана: Центр API Azure, показывающий API с разными версиями.

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

Копирование сведений центра API

На странице обзора экземпляра Центра API Azure скопируйте имя экземпляра Центра API, имя группы ресурсов и идентификатор подписки. Эти сведения необходимо настроить ApiCenterProductionVersionPlugin таким образом, чтобы он смог подключиться к экземпляру Центра API Azure.

Снимок экрана: страница обзора Центра API Azure с выделенными свойствами.

Настройка прокси-сервера разработки

Чтобы проверить, используется ли приложение api уровня рабочей среды, необходимо включить ApiCenterProductionVersionPlugin его в файле конфигурации прокси-сервера разработки. Чтобы создать отчет ОБ API, которые использует приложение, добавьте репортера.

Включение ApiCenterProductionVersionPlugin

devproxyrc.json В файле добавьте следующую конфигурацию:

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.19.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterProductionVersionPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "apiCenterProductionVersionPlugin"
    }
  ],
  "urlsToWatch": [
    "https://jsonplaceholder.typicode.com/*"
  ],
  "apiCenterProductionVersionPlugin": {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default"
  }
}

В разделе <a0subscriptionId/> и serviceName свойства укажите сведения о экземпляре Центра API Azure.

В свойстве urlsToWatch укажите URL-адреса, которые использует приложение.

Совет

Используйте расширение Visual Studio Code набора средств разработки для управления конфигурацией прокси-сервера разработки.

Добавление репортера

Создает ApiCenterProductionVersionPlugin отчет api,которые использует ваше приложение. Чтобы просмотреть этот отчет, добавьте репортера в файл конфигурации прокси-сервера разработки. Dev Proxy предлагает несколько репортеров. В этом примере используется репортер обычного текста.

Обновите devproxyrc.json файл со ссылкой на репортер обычного текста:

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.19.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterProductionVersionPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "apiCenterProductionVersionPlugin"
    },
    {
      "name": "PlainTextReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://jsonplaceholder.typicode.com/*"
  ],
  "apiCenterProductionVersionPlugin": {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default"
  }
}

Проверьте, использует ли ваше приложение API уровня рабочей среды

Чтобы проверить, использует ли ваше приложение API рабочего уровня, необходимо подключиться к подписке Azure, запустить прокси-сервер разработки и позволить ему перехватывать запросы API из приложения. Затем прокси-сервер разработки сравнивает сведения о запросах API с информацией из Центра API Azure и отчетов о любых непроизводственных API.

Подключение к подписке Azure

Прокси-сервер разработки использует сведения из Центра API Azure для определения того, используются ли API, которые используются приложением, на уровне рабочей среды. Чтобы получить эти сведения, он должен подключиться к вашей подписке Azure. Вы можете подключиться к подписке Azure несколькими способами.

Запуск прокси-сервера разработки

После подключения к подписке Azure запустите прокси-сервер разработки. Если запустить прокси-сервер разработки из той же папки, где devproxyrc.json находится файл, он автоматически загружает конфигурацию. В противном случае укажите путь к файлу конфигурации с помощью --config-file параметра.

При запуске прокси-сервера разработки он проверяет, может ли он подключиться к подписке Azure. Когда подключение выполнено успешно, вы увидите следующее сообщение:

 info    Plugin ApiCenterProductionVersionPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

Нажмите клавишу R , чтобы начать запись запросов API из приложения.

Использование приложения

Используйте приложение, как обычно. Прокси-сервер разработки перехватывает запросы API и сохраняет сведения о них в памяти. В командной строке, в которой выполняется прокси-сервер разработки, вы увидите сведения о запросах API, выполняемых приложением.

 info    Plugin ApiCenterProductionVersionPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

◉ Recording... 

 req   ╭ GET https://jsonplaceholder.typicode.com/posts?api-version=v1.0
 api   ╰ Passed through

 req   ╭ GET https://jsonplaceholder.typicode.com/users?api-version=beta
 api   ╰ Passed through

Проверка версий API

Остановите запись, нажав клавишу S. Прокси-сервер разработки подключается к экземпляру Центра API и сравнивает сведения о запросах с информацией из Центра API.

 info    Plugin ApiCenterProductionVersionPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

◉ Recording... 

 req   ╭ GET https://jsonplaceholder.typicode.com/posts?api-version=v1.0
 api   ╰ Passed through

 req   ╭ GET https://jsonplaceholder.typicode.com/users?api-version=beta
 api   ╰ Passed through
○ Stopped recording
 info    Checking if recorded API requests use production APIs as defined in API Center...
 info    Loading APIs from API Center...
 info    Analyzing recorded requests...
 warn    Request GET https://jsonplaceholder.typicode.com/users?api-version=beta uses API version beta which is defined as Preview. Upgrade to a production version of the API. Recommended versions: v1.0
 info    DONE

Когда прокси-сервер разработки завершит анализ, он создает отчет в файле с именем ApiCenterProductionVersionPlugin_PlainTextReporter.txt со следующим содержимым:

Non-production APIs:

  GET https://jsonplaceholder.typicode.com/users?api-version=beta
  
Production APIs:

  GET https://jsonplaceholder.typicode.com/posts?api-version=v1.0

Итоги

Используя прокси-сервер разработки и его ApiCenterProductionVersionPlugin, вы можете проверить, используется ли ваше приложение api уровня рабочей среды. Подключаемый модуль сравнивает сведения о запросах API из приложения с информацией из Центра API Azure и отчетов о любых запросах API непроизводства. Он также рекомендует рабочую версию api, которую вы используете. Проверка того, какие API использует приложение, помогает убедиться, что ваше приложение использует стабильные API, которые поддерживаются и охватываются соглашениями об уровне обслуживания, что делает приложение более надежным. Эту проверку можно выполнить вручную или интегрировать с конвейером CI/CD, чтобы убедиться, что приложение использует API уровня рабочей среды перед выпуском в рабочую среду.