Начало работы с прокси-сервером разработки
Dev Proxy — это программа командной строки, которая помогает имитировать поведение и ошибки облачных API для создания устойчивых приложений.
В этом руководстве описано, как установить, запустить и настроить прокси-сервер разработки.
Если у вас возникнут какие-либо трудности, не стесняйтесь связаться с нами, поднимая новый вопрос , и мы рады помочь вам.
Установка прокси-сервера разработки
Проще всего установить Dev Proxy с помощью winget. Кроме того, прокси-сервер разработки можно установить вручную.
Чтобы установить Dev Proxy с помощью winget, выполните следующую команду:
winget install Microsoft.DevProxy --silent
Важно!
Установщик Прокси-сервера разработки добавляет новую запись в PATH. Чтобы использовать прокси-сервер разработки после установки, необходимо перезапустить командную строку, чтобы убедиться, что переменные среды PATH обновлены.
Примечание
Чтобы опробовать последние предварительные версии функций, установите бета-версию Прокси-сервера разработки.
Чтобы установить Dev Proxy с помощью winget, выполните следующую команду:
winget install Microsoft.DevProxy.Beta --silent
Чтобы запустить бета-версию dev Proxy, используйте devproxy-beta
Самый простой способ установить Dev Proxy — использовать Homebrew. Кроме того, прокси-сервер разработки можно установить вручную.
Чтобы установить Dev Proxy с помощью Homebrew, выполните следующие команды:
brew tap microsoft/dev-proxy
brew install dev-proxy
Примечание
Чтобы опробовать последние предварительные версии функций, установите бета-версию Прокси-сервера разработки.
Чтобы установить Dev Proxy с помощью Homebrew, выполните следующие команды:
brew tap microsoft/dev-proxy
brew install dev-proxy-beta
Чтобы запустить бета-версию dev Proxy, используйте devproxy-beta
Запуск прокси-сервера разработки в первый раз
При первом запуске прокси-сервера разработки на компьютере необходимо выполнить несколько действий, чтобы прокси-сервер разработчика перехватывая запросы с вашего компьютера и успешно отвечая на них. Повторять эти действия после первого запуска не придется.
- Запустите прокси-сервер разработки. Откройте сеанс командной строки. Введите
devproxy
и нажмите клавишу ВВОД. - Сертификат доверия. Прокси-сервер разработки устанавливает сертификат с именем
Dev Proxy CA
. Отображается предупреждение. ВыберитеYes
, чтобы подтвердить установку сертификата. Прокси-сервер разработчика использует этот сертификат для расшифровки трафика HTTPS, отправляемого с компьютера. - Разрешить доступ к брандмауэру. Брандмауэр Windows блокирует прокси-сервер. Отображается предупреждение. Нажмите
Allow access
кнопку, чтобы разрешить трафик через брандмауэр.
- Запустите прокси-сервер разработки. Откройте сеанс командной строки. Введите
devproxy
и нажмите клавишу ВВОД. - Сертификат доверия. Сервер Dev Proxy устанавливает сертификат с именем
Dev Proxy CA
, который используется для расшифровки трафика HTTPS, отправленного с компьютера. Отображается предупреждение. Нажмите y , чтобы подтвердить, что вы хотите доверять сертификату. - Примите входящие подключения. Отображается предупреждение. Выберите
Allow
для подтверждения.
В командной строке отображаются следующие выходные данные:
8 error responses loaded from devproxy-errors.json
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
По умолчанию прокси-сервер разработчика настроен для:
- Перехват запросов к любой конечной точке API заполнителя JSON
- Имитация ответов на ошибки API и регулирование API с частотой сбоев 50 %
Перехват запросов
Прокси-сервер разработки перехватывает запросы на известные URL-адреса из любого приложения на вашем компьютере. При обнаружении запроса прокси-сервер разработчика передает запрос в API (не выполняет никаких действий) или возвращает ответ.
- Отправьте запрос в API заполнителя JSON из командной строки и переключитесь обратно на прокси-процесс, чтобы просмотреть выходные данные.
В PowerShell используйте Invoke-WebRequest
командлет для отправки запроса GET в API заполнителя JSON.
Invoke-WebRequest -Uri https://jsonplaceholder.typicode.com/posts
Если вы используете curl
, отправьте запрос GET в API заполнителя JSON с помощью следующей команды.
curl -ix http://localhost:8000 https://jsonplaceholder.typicode.com/posts
Вы также можете использовать клиент API, например Postman , для отправки запроса GET в https://jsonplaceholder.typicode.com/posts
.
Отображается запись с некоторыми основными сведениями о входящем запросе и действии, выполненном прокси-сервером разработки. Dev Proxy имитирует ответ на ошибку с вероятностью 50 %. Если запрос не возвращает ошибку, прокси-сервер разработчика передает его.
request GET https://jsonplaceholder.typicode.com/posts
api ╭ Passed through
╰ GET https://jsonplaceholder.typicode.com/posts
- Повторяйте отправку запросов в API заполнителя JSON из командной строки, пока не будет возвращен ответ об ошибке.
request GET https://jsonplaceholder.typicode.com/posts
api ╭ Passed through
╰ GET https://jsonplaceholder.typicode.com/posts
request GET https://jsonplaceholder.typicode.com/posts
chaos ╭ 403 Forbidden
╰ GET https://jsonplaceholder.typicode.com/posts
Когда Dev Proxy возвращает ответ об ошибке chaos
, в записи отображается метка.
- Попробуйте отправить запросы в другие конечные точки, доступные в API заполнителя JSON
https://jsonplaceholder.typicode.com/posts
https://jsonplaceholder.typicode.com/posts/1
https://jsonplaceholder.typicode.com/posts/1/comments
https://jsonplaceholder.typicode.com/comments?postId=1
Безопасная остановка прокси-сервера разработки
Если прокси-сервер разработки больше не требуется, его всегда следует останавливать безопасно.
- Нажмите клавиши CTRL + C , чтобы безопасно остановить прокси-сервер разработки.
Если вы завершите сеанс командной строки, прокси-сервер разработчика не отменит регистрацию в качестве системного прокси-сервера, и у вас могут возникнуть некоторые распространенные проблемы.
Измените URL-адреса на watch
По умолчанию прокси-сервер разработчика настроен для перехвата любых запросов, сделанных в API заполнителя JSON. Прокси-сервер разработки можно настроить для перехвата запросов к любому API HTTP.
- В командной строке выполните команду
brew list dev-proxy
, чтобы найти папку установки. - Откройте папку установки Dev Proxy в Finder.
- В папке установки Dev Proxy откройте
devproxyrc.json
в текстовом редакторе. urlsToWatch
Найдите массив.
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
],
Массив urlsToWatch
представляет известные URL-адреса. Dev Proxy наблюдает за запросами из текущей записи к любой конечной точке. Запись использует звездочку после URL-адреса в качестве подстановочного знака. Добавление дополнительных записей в этот массив расширяет URL-адреса, за которыми следит прокси-сервер разработчика.
Давайте рассмотрим, что вы не хотите, чтобы прокси-сервер разработчика перехватывал запросы, сделанные к определенной конечной точке.
- Добавьте новую запись в
urlsToWatch
массив.
"urlsToWatch": [
"!https://jsonplaceholder.typicode.com/posts/2",
"https://jsonplaceholder.typicode.com/*"
],
Восклицательный знак в начале URL-адреса указывает, что прокси-сервер разработчика игнорирует все запросы, соответствующие указанному URL-адресу. В URL-адресе можно сочетать восклицательные знаки и звездочки.
- В командной строке введите
devproxy
и нажмите клавишу ВВОД , чтобы запустить dev Proxy. - Отправьте запрос из
https://jsonplaceholder.typicode.com/posts/2
командной строки и просмотрите выходные данные.
Отображается запись, подтверждающая, что запрос был проигнорирован и передан в API.
request GET https://jsonplaceholder.typicode.com/posts/2
api ╭ Passed through
╰ GET https://jsonplaceholder.typicode.com/posts/2
Важен порядок перечисления URL-адресов в массиве urlsToWatch
. Прокси-сервер разработчика обрабатывает эти URL-адреса по порядку. Если URL-адрес совпадает, он больше не обрабатывается. Таким образом, размещение URL-адреса первым гарантирует, что запрос будет проигнорирован перед обработкой следующего URL-адреса.
Коэффициент сбоев при изменениях
По умолчанию сервер Dev Proxy настроен на сбой запросов с вероятностью 50 % для отслеживаемых URL-адресов. Вы можете увеличить или уменьшить вероятность того, что запрос возвращает ответ на ошибку.
Давайте обновим частоту сбоев, чтобы каждый запрос к API заполнителя JSON возвращал ответ об ошибке.
- В папке установки Dev Proxy откройте
devproxyrc.json
в текстовом редакторе. - Найдите свойство
rate
и обновите значение с50
на100
.
Файл devproxyrc.json
содержит параметры конфигурации, которые используются при запуске прокси-сервера разработки. При изменении параметров конфигурации всегда следует останавливаться и запускать прокси-сервер разработки, чтобы сохранить изменения.
- В командной строке введите
devproxy
и нажмите клавишу ВВОД , чтобы запустить dev Proxy. - Отправьте запрос в API заполнителя JSON из командной строки и просмотрите выходные данные.
Кроме того, можно переопределить параметры конфигурации во время выполнения с помощью --failure-rate
параметра при запуске прокси-сервера разработки.
devproxy --failure-rate 100
- Нажмите клавиши CTRL + C , чтобы безопасно остановить прокси-сервер разработки.
Имитация регулирования
По умолчанию прокси-сервер разработчика возвращает диапазон универсальных ответов на ошибки 400 и 500. Эти ответы на ошибки можно настроить в соответствии с собственными потребностями.
Dev Proxy использует подключаемые модули для различных поведений API. По умолчанию мы включаем два подключаемых модуля.
- Подключаемый модуль GenericRandomErrorPlugin предоставляет прокси-серверу разработчика возможность отвечать на сообщение об ошибке.
- Подключаемый модуль RetryAfterPlugin предоставляет прокси-серверу разработчика возможность вставки динамического значения в заголовок Retry-After в ответе на ошибку.
Давайте изменим конфигурацию, чтобы прокси-сервер разработчика всегда возвращал ответ на 429 Too Many requests
ошибку для имитации регулирования.
Сначала найдем расположение файла, содержащего определения ошибок.
- В папке установки Dev Proxy откройте
devproxyrc.json
в текстовом редакторе. - В массиве найдите
plugins
запись для подключаемого модуля GenericRandomErrorPlugin . Обратите внимание на значениеconfigSection
свойства . - Далее вниз по файлу найдите
genericRandomErrorPlugin
объект . Обратите внимание на значениеerrorsFile
свойства .
Совет
Расположение файла ошибок также отображается в выходных данных при запуске прокси-сервера разработки.
- В папке установки Dev Proxy откройте
devproxy-errors.json
в текстовом редакторе. - Удалите все записи ответа в массиве
responses
, за429
исключением ответа.
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/genericrandomerrorplugin.schema.json",
"responses": [
{
"statusCode": 429,
"body": {
"message": "Too Many Requests",
"details": "The user has sent too many requests in a given amount of time (\"rate limiting\")."
},
"headers": {
"Retry-After": "@dynamic"
}
}
]
}
- В командной строке введите
devproxy
и нажмите клавишу ВВОД , чтобы запустить dev Proxy. - Отправьте запрос в API заполнителя JSON из командной строки и просмотрите выходные данные.
request GET https://jsonplaceholder.typicode.com/posts
chaos ╭ 429 TooManyRequests
╰ GET https://jsonplaceholder.typicode.com/posts
- Нажмите клавиши CTRL + C , чтобы безопасно остановить прокси-сервер разработки.
Следующий шаг
Узнайте, как использовать Dev Proxy для имитации случайных ошибок для собственного приложения.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по