Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Перезаписывает запросы.
Пример конфигурации
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
"plugins": [
{
"name": "RewritePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "rewritePlugin"
}
],
"rewritePlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.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/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^http://(.*)"
},
"out": {
"url": "https://$1"
}
}
]
}
Настройка заголовка запроса
Accept-Language Задайте заголовок для всех запросовhttps://api.contoso.com. Если запрос уже имеет заголовок, подключаемый модуль заменяет его значение. Если заголовок отсутствует, подключаемый модуль добавляет его. Так как правило не указывает URL-адрес вне , подключаемый модуль не изменяет URL-адрес запроса.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^https://api\\.contoso\\.com/"
},
"out": {
"headers": [
{
"name": "Accept-Language",
"value": "nl-NL"
}
]
}
}
]
}
Перезапись запросов на URL-адрес из переменной среды
Перезапись запросов на https://api.contoso.com базовый URL-адрес, хранящийся в API_BASE_URL переменной среды, сохраняя остальную часть пути.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^https://api\\.contoso\\.com/(.*)"
},
"out": {
"url": "${env:API_BASE_URL}/$1"
}
}
]
}
Макеты свойств файла
| Свойство | Описание | Обязательное поле |
|---|---|---|
rewrites |
Массив объектов перезаписи, определяющих список правил перезаписи, применимых к запросам, которые он перехватывает. | да |
Переопределение объекта
Каждое правило перезаписи имеет следующие свойства:
| Свойство | Описание | Обязательное поле |
|---|---|---|
in |
Переопределите шаблон для сопоставления входящего запроса. | да |
out |
Перезапись шаблона для перезаписи запроса | да |
Замечания
Если запрос, перехватываемый ПереопределениемPlugin, не соответствует всем свойствам, определенным в шаблоне, подключаемый модуль не применяет правило перезаписи к запросу.
Шаблон перезаписи
Каждый шаблон перезаписи имеет следующие свойства:
| Свойство | Описание | Обязательное поле | Значение по умолчанию | Пример значения |
|---|---|---|---|---|
url |
В шаблоне регулярное выражение, которое подключаемый модуль применяется к URL-адресу. В шаблоне выхода URL-адрес для перезаписи запроса. Если вы опустите его в шаблоне выхода , подключаемый модуль не изменяет URL-адрес запроса. | Да в, нет в выходе | ^http://(.*) |
|
headers |
Массив заголовков запросов, заданных в запросе. Поддерживается только в шаблоне out . | no |
Замечания
Шаблон выхода должен указывать urlили headersоба.
Если вы используете группы записи в регулярном выражении в шаблонах, вы можете ссылаться на них в шаблоне. Например, если вы хотите переписать, можно использовать следующее правило перезаписи http://example.com/foohttps://example.com/foo:
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^http://(.*)"
},
"out": {
"url": "https://$1"
}
}
]
}
В URL-адресе выхода можно ссылаться на переменные среды с помощью синтаксиса ${env:VAR_NAME} . Прокси-сервер разработки вставляет значение переменной среды as-is, поэтому значение также может ссылаться на группы записи из шаблона. Прокси-сервер разработки разрешает переменные среды только для запросов, которые соответствуют шаблону и не расширяют переменные среды в шаблоне. Если указанная переменная среды не задана, прокси-сервер разработчика регистрирует ошибку и пропускает правило перезаписи.
Заголовок запроса
Каждый заголовок запроса имеет следующие свойства:
| Свойство | Описание | Обязательное поле |
|---|---|---|
name |
Имя заголовка запроса | да |
value |
Значение, заданное для заголовка запроса | да |
Замечания
Подключаемый модуль сопоставляет имена заголовков без учета регистра. Если запрос уже имеет заголовок, подключаемый модуль заменяет его значение. Если заголовок отсутствует, подключаемый модуль добавляет его.
Подключаемый модуль задает заголовки только в запросах, URL-адрес которых соответствует шаблону URL-адреса. Подключаемый модуль оценивает соответствие перед применением перезаписи URL-адреса одного правила, поэтому при перезаписи правила как URL-адреса, так и заголовки применяются к тем же запросам, что и перезапись URL-адреса.
Можно ссылаться на переменные среды в значениях заголовков с помощью синтаксиса ${env:VAR_NAME} . Прокси-сервер разработки разрешает их так же, как и в URL-адресе выхода , и пропускает правило перезаписи, если указанная переменная среды не задана. Значения заголовков не поддерживают группы записи из шаблона.