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


Архитектура подключаемого модуля

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

  • перехват подключаемых модулей, которые перехватывают запросы и ответы и могут анализировать и изменять их.
  • подключаемые модули отчетов, которые выполняются в запросах записанных с помощью прокси-сервера разработки
  • репортеры, которые создают отчеты на основе данных, собранных подключаемыми модулями отчетов

Подключаемые модули регистрируются в файле devproxyrc.json. Файл содержит список подключаемых модулей для загрузки и их конфигурации.

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

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

Перехват подключаемых модулей

Когда прокси-сервер разработки перехватывает запрос, соответствующий одному из URL-адресов в массиве urlsToWatch, он вызывает каждый перехват подключаемый модуль в том порядке, в котором они перечислены в файле конфигурации. Каждый перехват подключаемого модуля наследуется от класса BaseProxyPlugin и может подписаться на следующие события:

  • BeforeRequest — возникает, когда прокси-сервер разработки перехватывает запрос.
  • BeforeResponse — возникает после того, как прокси-сервер разработчика получает ответ от сервера.
  • AfterResponse — возникает после отправки ответа прокси-сервера разработки клиенту.

Для каждого из этих событий подключаемые модули могут определять обработчик событий. В обработчике подключаемый модуль может проанализировать запрос и ответ и изменить его при необходимости. Кроме того, он может выводить сообщения с рекомендациями. Чтобы узнать, что возможно, ознакомьтесь с кодом подключаемых модулей, предоставляемыхпрокси-сервера разработки.

Подключаемые модули отчетов

Прокси-сервер разработки позволяет записывать запросы и ответы API. Обычно запись используется для отчета об использовании API или анализа нескольких запросов API. Отчеты подключаемых модулей наследуются от класса BaseReportingPlugin и регистрируют обработчик событий с помощью события AfterRecordingStop.

При остановке записи прокси-сервер разработки вызывает событие AfterRecordingStop, передав список записанных запросов и ответов в качестве аргумента зарегистрированным обработчикам событий. После этого подключаемые модули отчетов могут анализировать записанные данные и создавать объект отчета. Объект отчета — это произвольный объект, определенный подключаемым модулем отчетов. Подключаемые модули отчетов хранят отчеты, вызывая метод StoreReport.

Важный

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

Журналистам

Сервер разработки использует репортеров для преобразования объектов отчетов, созданных подключаемыми модулями отчетов, в читаемые пользователем отчеты. Например, MarkdownReporter преобразует объект отчета в файл Markdown. Репортеры — это специальные подключаемые модули, наследуемые от класса BaseReporter. Они реализуют метод GetReport, который принимает в качестве аргумента отчет, созданный подключаемым модулем отчетов, и преобразует его в строку. Затем эта строка сохраняется на диске после PluginName_ReporterName.ReporterExtension шаблона, например ApiCenterOnboardingPlugin_MarkdownReporter.md.

Важный

Так как репортеры зависят от объектов отчета, созданных подключаемыми модулями отчетов, необходимо включить подключаемые модули отчетов в файле конфигурации прокси-сервера разработки после создания отчетов подключаемых модулей. Если вы включите их перед отправкой отчетов подключаемых модулей, репортеры не будут иметь никаких данных для отчета.