Начало работы с прокси-сервером разработки

Прокси-сервер разработки — это средство командной строки, которое помогает имитировать поведение и ошибки облачных 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

Запуск прокси-сервера разработки в первый раз

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

  1. Запустите прокси-сервер разработки. Откройте сеанс командной строки. Введите devproxy и нажмите клавишу ВВОД.
  2. Сертификат доверия. Прокси-сервер разработки устанавливает сертификат с именем Dev Proxy CA. Отображается предупреждение. Выберите Yes , чтобы убедиться, что вы хотите установить сертификат. Прокси-сервер разработки использует этот сертификат для расшифровки трафика HTTPS, отправленного с компьютера.
  3. Разрешить доступ к брандмауэру. Брандмауэр Windows блокирует прокси-сервер. Отображается предупреждение. Allow access Нажмите кнопку, чтобы разрешить трафик через брандмауэр.
  1. Запустите прокси-сервер разработки. Откройте сеанс командной строки. Введите devproxy и нажмите клавишу ВВОД.
  2. Сертификат доверия. Сервер разработки устанавливает сертификат с именем Dev Proxy CA, который используется для расшифровки трафика HTTPS, отправленного с компьютера. Отображается предупреждение. Нажмите клавишу Y , чтобы подтвердить, что вы хотите доверять сертификату.
  3. Примите входящие подключения. Отображается предупреждение. Выберите Allow , чтобы подтвердить.
  1. Запустите прокси-сервер разработки. Откройте сеанс командной строки. Введите devproxy и нажмите клавишу ВВОД.

  2. Сертификат доверия. Для расшифровки трафика 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/postsGET.

Запись отображается с некоторыми основными сведениями о входящем запросе и действии, выполняемом прокси-сервером разработки. Прокси-сервер разработки имитирует ответ на ошибку с вероятностью 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, по умолчанию мы включите два подключаемых модуля.

Давайте изменим конфигурацию, чтобы прокси-сервер разработки всегда возвращал 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, чтобы безопасно остановить прокси-сервер разработки.

Следующий шаг

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