Начало работы с прокси-сервером разработки
Прокси-сервер разработки — это средство командной строки, которое помогает имитировать поведение и ошибки облачных API для создания устойчивых приложений.
В этом руководстве описано, как установить, запустить и настроить прокси-сервер разработки.
Если вы сталкиваетесь с какими-либо трудностями, не стесняйтесь связаться с нами, поднимая новую проблему , и мы рады помочь вам.
Установка прокси-сервера разработки
Самый простой способ установить прокси-сервер разработки — использовать winget. Кроме того, можно вручную установить прокси-сервер разработки.
Чтобы установить прокси-сервер разработки с помощью winget, выполните следующую команду:
winget install Microsoft.DevProxy --silent
Внимание
Установщик прокси-сервера разработки добавляет новую запись в PATH. Чтобы использовать прокси-сервер разработки после установки, необходимо перезапустить командную строку, чтобы убедиться, что переменные среды PATH обновлены.
Примечание.
Чтобы попробовать последние предварительные версии компонентов, установите бета-версию прокси-сервера разработки.
Чтобы установить прокси-сервер разработки с помощью winget, выполните следующую команду:
winget install Microsoft.DevProxy.Beta --silent
Запуск бета-версии прокси-сервера разработки devproxy-beta
Самый простой способ установить прокси-сервер разработки — использовать Homebrew. Кроме того, можно вручную установить прокси-сервер разработки.
Чтобы установить прокси-сервер разработки с помощью Homebrew, выполните следующие команды:
brew tap microsoft/dev-proxy
brew install dev-proxy
Примечание.
Чтобы попробовать последние предварительные версии компонентов, установите бета-версию прокси-сервера разработки.
Чтобы установить прокси-сервер разработки с помощью Homebrew, выполните следующие команды:
brew tap microsoft/dev-proxy
brew install dev-proxy-beta
Запуск бета-версии прокси-сервера разработки devproxy-beta
Самый простой способ установить прокси-сервер разработки — использовать скрипт установки. Кроме того, можно вручную установить прокси-сервер разработки.
Чтобы установить прокси-сервер разработки с помощью скрипта установки, выполните следующие команды:
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"
Если вы используете PowerShell, выполните следующую команду:
(Invoke-WebRequest https://aka.ms/devproxy/setup.ps1).Content | Invoke-Expression
Примечание.
Чтобы попробовать последние предварительные версии компонентов, установите бета-версию прокси-сервера разработки.
Чтобы установить прокси-сервер разработки с помощью скрипта установки, выполните следующие команды:
bash -c "$(curl -sL https://aka.ms/devproxy/setup-beta.sh)"
Если вы используете PowerShell, выполните следующую команду:
(Invoke-WebRequest https://aka.ms/devproxy/setup-beta.ps1).Content | Invoke-Expression
Запуск бета-версии прокси-сервера разработки devproxy-beta
Запуск прокси-сервера разработки в первый раз
При первом запуске прокси-сервера разработки на компьютере необходимо выполнить несколько шагов, чтобы убедиться, что прокси-сервер разработки может перехватывать запросы с компьютера и успешно реагировать. После первого запуска вам не придется повторять эти шаги.
- Запустите прокси-сервер разработки. Откройте сеанс командной строки. Введите
devproxy
и нажмите клавишу ВВОД. - Сертификат доверия. Прокси-сервер разработки устанавливает сертификат с именем
Dev Proxy CA
. Отображается предупреждение. ВыберитеYes
, чтобы убедиться, что вы хотите установить сертификат. Прокси-сервер разработки использует этот сертификат для расшифровки трафика HTTPS, отправленного с компьютера. - Разрешить доступ к брандмауэру. Брандмауэр Windows блокирует прокси-сервер. Отображается предупреждение.
Allow access
Нажмите кнопку, чтобы разрешить трафик через брандмауэр.
- Запустите прокси-сервер разработки. Откройте сеанс командной строки. Введите
devproxy
и нажмите клавишу ВВОД. - Сертификат доверия. Сервер разработки устанавливает сертификат с именем
Dev Proxy CA
, который используется для расшифровки трафика HTTPS, отправленного с компьютера. Отображается предупреждение. Нажмите клавишу Y , чтобы подтвердить, что вы хотите доверять сертификату. - Примите входящие подключения. Отображается предупреждение. Выберите
Allow
, чтобы подтвердить.
Запустите прокси-сервер разработки. Откройте сеанс командной строки. Введите
devproxy
и нажмите клавишу ВВОД.Сертификат доверия. Для расшифровки трафика HTTPS, отправленного с компьютера, используется пользовательский SSL-сертификат.
Внимание
Ниже приведены инструкции для Ubuntu. Для других дистрибутивов Linux шаги могут отличаться.
Чтобы установить и доверять сертификату, в новой командной строке выполните следующие команды:
# Export Dev Proxy root certificate openssl pkcs12 -in ~/.config/dev-proxy/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:"" # Install the certificate sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/ # Update certificates sudo update-ca-certificates
В командной строке отображаются следующие выходные данные:
info 8 error responses loaded from devproxy-errors.json
info Dev Proxy API listening on http://localhost:8897...
info Dev Proxy 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 , для отправки запроса https://jsonplaceholder.typicode.com/posts
GET.
Запись отображается с некоторыми основными сведениями о входящем запросе и действии, выполняемом прокси-сервером разработки. Прокси-сервер разработки имитирует ответ на ошибку с вероятностью 50 %. Если запрос не возвращает ошибку, прокси-сервер разработки передает его через.
req ╭ GET https://jsonplaceholder.typicode.com/posts
api ╰ Passed through
- Повторите отправку запросов в API заполнителя JSON из командной строки, пока не будет возвращен ответ об ошибке.
req ╭ GET https://jsonplaceholder.typicode.com/posts
api ╰ Passed through
req ╭ GET https://jsonplaceholder.typicode.com/posts
oops ╰ 403 Forbidden
Когда прокси-сервер разработки возвращает ответ об ошибке, 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-адресов для просмотра
По умолчанию прокси-сервер разработки настроен для перехвата любого запроса, сделанного в API заполнителя JSON. Вы можете настроить прокси-сервер разработки для перехвата запросов к любому API HTTP.
- Откройте файл конфигурации прокси-сервера разработки, выполнив команду в командной строке:
devproxy config
urlsToWatch
Найдите массив.
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
],
Массив urlsToWatch
представляет известные URL-адреса. Прокси-сервер разработки просматривает запросы из текущей записи в любую конечную точку. Запись использует звездочку после URL-адреса в качестве подстановочного знака. Добавление дополнительных записей в этот массив расширяет URL-адреса, на которые следит прокси-сервер разработки.
Рассмотрим, что вы не хотите, чтобы прокси-сервер разработки перехватил запросы, сделанные в определенную конечную точку.
- Добавьте новую запись в
urlsToWatch
массив.
"urlsToWatch": [
"!https://jsonplaceholder.typicode.com/posts/2",
"https://jsonplaceholder.typicode.com/*"
],
Восклицательный знак в начале URL-адреса указывает прокси-серверу разработки игнорировать все запросы, соответствующие указанному URL-адресу. Вы можете смешивать восклицательные знаки и звездочки в URL-адресе.
- В командной строке введите
devproxy
и нажмите клавишу ВВОД , чтобы запустить прокси-сервер разработки. - Отправьте запрос
https://jsonplaceholder.typicode.com/posts/2
из командной строки и просмотрите выходные данные.
Если пропущенный URL-адрес соответствует запросу, прокси разработки не обрабатывает запрос, поэтому выходные данные не отображаются.
Порядок, в котором URL-адреса перечислены в массиве urlsToWatch
, важен. Прокси-сервер разработки обрабатывает эти URL-адреса по порядку. При совпадении URL-адреса он не обрабатывается снова. Поэтому при размещении URL-адреса сначала гарантируется, что запрос игнорируется перед обработкой следующего URL-адреса.
Коэффициент сбоев при изменениях
По умолчанию прокси-сервер разработки настроен на сбой запросов с вероятностью 50 % для отслеживаемых URL-адресов. Вы можете увеличить или уменьшить вероятность возврата ответа на ошибку запроса.
Давайте обновим частоту сбоев, чтобы каждый запрос к API заполнителя JSON возвращал ответ на ошибку.
- Откройте файл конфигурации прокси-сервера разработки, выполнив команду в командной строке:
devproxy config
- Найдите свойство
rate
и обновите значение с50
на100
.
Файл devproxyrc.json
содержит параметры конфигурации, используемые при запуске прокси-сервера разработки. При изменении параметров конфигурации всегда следует остановить и запустить прокси разработки для сохранения изменений.
- В командной строке введите
devproxy
и нажмите клавишу ВВОД , чтобы запустить прокси-сервер разработки. - Отправьте запрос в API заполнителя JSON из командной строки и просмотрите выходные данные.
Кроме того, можно переопределить параметры конфигурации во время выполнения с помощью --failure-rate
параметра при запуске прокси-сервера разработки.
devproxy --failure-rate 100
- Нажмите клавиши CTRL + C, чтобы безопасно остановить прокси-сервер разработки.
Имитация регулирования
По умолчанию прокси-сервер разработки возвращает диапазон универсальных ответов на ошибки 400 и 500. Эти ответы на ошибки можно настроить в соответствии с вашими потребностями.
Прокси-сервер разработки использует подключаемые модули для включения различных поведении API, по умолчанию мы включите два подключаемых модуля.
- Подключаемый модуль GenericRandomErrorPlugin позволяет прокси-серверу разработки реагировать на ошибку.
- Подключаемый модуль RetryAfterPlugin предоставляет возможность внедрения динамического значения в заголовок Retry-After в ответе на ошибку.
Давайте изменим конфигурацию, чтобы прокси-сервер разработки всегда возвращал 429 Too Many requests
ответ на ошибку для имитации регулирования.
Сначала найдите расположение файла, содержащего определения ошибок.
- Откройте файл конфигурации прокси-сервера разработки, выполнив команду в командной строке:
devproxy config
- В массиве
plugins
найдите запись для подключаемого модуля GenericRandomErrorPlugin . Обратите внимание на значениеconfigSection
свойства. - Далее вниз по файлу
genericRandomErrorPlugin
найдите объект. Обратите внимание на значениеerrorsFile
свойства.
Совет
Расположение файла ошибок также отображается в выходных данных при запуске прокси-сервера разработки.
- В папке установки прокси-сервера разработки откройте
devproxy-errors.json
в текстовом редакторе. - Удалите все записи ответа в массиве
responses
, за исключением429
ответа.
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.20.0/genericrandomerrorplugin.schema.json",
"errors": [
{
"request": {
"url": "https://jsonplaceholder.typicode.com/*"
},
"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
и нажмите клавишу ВВОД , чтобы запустить прокси-сервер разработки. - Отправьте запрос в API заполнителя JSON из командной строки и просмотрите выходные данные.
req ╭ GET https://jsonplaceholder.typicode.com/posts
oops ╰ 429 TooManyRequests
- Нажмите клавиши CTRL + C, чтобы безопасно остановить прокси-сервер разработки.
Следующий шаг
Узнайте, как использовать прокси разработки для имитации случайных ошибок для собственного приложения.