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


ПерезаписьPlugin

Перезаписывает запросы.

Снимок экрана: командная строка с прокси-сервером разработки, перезаписающая входящий запрос API.

Определение экземпляра подключаемого модуля

{
  "name": "RewritePlugin",
  "enabled": true,
  "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
  "configSection": "rewritePlugin"
}

Пример конфигурации

{
  "rewritePlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rewriteplugin.schema.json",
    "rewritesFile": "rewrites.json"
  }
}

Свойства конфигурации

Свойство Описание По умолч.
rewritesFile Путь к файлу с определениями перезаписи rewrites.json

Параметры командной строки

нет

Примеры переопределения файлов

Ниже приведены примеры правил перезаписи.

Перезапись всех запросов из HTTP в HTTPS

Перезапись всех запросов из HTTP в HTTPS. В этом контексте все запросы, настроенные с помощью прокси-сервера разработки или перезаписиPlugin.

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rewriteplugin.rewritesfile.schema.json",
  "rewrites": [
    {
      "in": {
        "url": "^http://(.*)"
      },
      "out": {
        "url": "https://$1"
      }
    }
  ]
}

Макеты свойств файла

Свойство Описание Обязательное поле
rewrites Массив объектов перезаписи, определяющих список правил перезаписи, применимых к запросам, которые он перехватывает. да

Переопределение объекта

Каждое правило перезаписи имеет следующие свойства:

Свойство Описание Обязательное поле
in Переопределите шаблон для сопоставления входящего запроса. да
out Перезапись шаблона для перезаписи запроса да

Замечания

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

Шаблон перезаписи

Каждый шаблон перезаписи имеет следующие свойства:

Свойство Описание Обязательное поле Значение по умолчанию Пример значения
url Регулярное выражение, которое подключаемый модуль применяется к URL-адресу. да ^http://(.*)

Замечания

Если вы используете группы записи в регулярном выражении в шаблонах, вы можете ссылаться на них в шаблоне. Например, если вы хотите переписать, можно использовать следующее правило перезаписи http://example.com/foohttps://example.com/foo:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rewriteplugin.rewritesfile.schema.json",
  "rewrites": [
    {
      "in": {
        "url": "^http://(.*)"
      },
      "out": {
        "url": "https://$1"
      }
    }
  ]
}