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


Проверка запросов API, выданных облачными службами

При интеграции приложения с облачными службами одна из проблем, с которыми вы можете столкнуться, заключается в том, как облачная служба взаимодействует с API, которые он использует. Возможность проверки запросов API особенно важна при устранении неполадок или при попытке понять, как работает облачная служба. Как правило, это сложно, так как у вас нет доступа к среде выполнения облачной службы, и у вас также может не быть доступа к средствам мониторинга для облачного API. Используя прокси-сервер разработки и туннель разработки, вы можете проверить запросы API, которые облачные службы выдают облачным API.

Внимание

Прежде чем продолжить, установите туннель разработки и настройте средство для использования.

Как облачные службы вызывают облачные API

При интеграции приложения с облачными службами облачная служба вызывает API в облаке. Этот сценарий представлен на схеме ниже.

Схема, показывающая, как облачная служба вызывает облачный API.

Чтобы проверить запросы API, связанные с проблемами облачной службы, необходимо получить доступ к средствам мониторинга для облачного API. Часто у вас нет доступа к этим средствам. Это ограничение можно обойти с помощью промежуточной среды. Однако для настройки и поддержания промежуточной среды требуется много времени. Кроме того, если вы не владеете облачным API, возможно, вы не сможете настроить промежуточную среду вообще.

Проверка запросов API с помощью прокси-сервера разработки и туннель разработки

Используя прокси-сервер разработки и туннель разработки, вы можете проверить запросы API, связанные с проблемами облачной службы в облачном API.

Схема, показывая, как проверить вызовы облачных API с помощью туннель разработки и прокси-сервера разработки.

Вместо прямого вызова облачного API вы настраиваете облачную службу для вызова туннеля разработки, выполняемого на локальном компьютере (1). Вы настраиваете туннель разработки для использования заголовка узла, перехватываемого прокси-сервером разработки. Каждый раз, когда облачная служба вызывает туннель разработки, он передает запрос в прокси разработки, который перехватывает его (2). Используя перезапись прокси-сервера разработки, вы измените URL-адрес перехватываемого запроса и перенаправите его в облачный API (3). Облачный API обрабатывает запрос и возвращает ответ на прокси-сервер разработки (4). Прокси-сервер разработки передает ответ на туннель разработки (5), который перенаправит его в облачную службу (6). Так как запрос направляется через локальный компьютер, его можно проверить, включая URL-адрес, заголовки и текст, а также ответ из облачного API.

Сценарий

Предположим, что вы хотите проверить запросы API, связанные с проблемами облачной службы в демонстрационном API JSONPlaceholder, расположенном по адресу https://jsonplaceholder.typicode.com. Объединяя прокси-сервер разработки и туннель разработки, вы можете перехватывать запросы и проверять их информацию.

Запросы можно проверить с помощью средств проверки туннель разработки или с помощью средства разработки DevToolsPlugin для прокси-сервера. Оба средства используют средства разработки Chrome для отображения сведений о перехватываемых запросах и ответах. При использовании средств проверки туннель разработки вы увидите URL-адрес туннеля разработки в качестве URL-адреса запроса. В сравнении, если вы используете Dev Proxy DevToolsPlugin, вы увидите, как прокси-сервер разработки перехватывает запрос, используя локальный или перезаписанный URL-адрес.

Проверка запросов API с помощью средств проверки прокси-сервера разработки, туннель разработки и туннель разработки

  1. Настройка прокси-сервера разработки для перехвата запросов и https://jsonplaceholder.typicode.com http://jsonplaceholder.typicode.local:

    {
      "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.23.0/rc.schema.json",
      "plugins": [
        {
          "name": "RewritePlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
          "configSection": "rewritePlugin"
        }
      ],
      "urlsToWatch": [
        "https://jsonplaceholder.typicode.com/*",
        "http://jsonplaceholder.typicode.local/*"
      ],
      "rewritePlugin": {
        "rewritesFile": "devproxy-rewrites.json"
      },
      "logLevel": "information",
      "newVersionNotification": "stable",
      "showSkipMessages": true
    }
    

    Файл конфигурации использует ПерезаписьPlugin для перезаписи URL-адреса перехватываемых запросов. Он также настраивает прокси-сервер разработки для перехвата запросов https://jsonplaceholder.typicode.com и http://jsonplaceholder.typicode.local URL-адресов.

    Примечание.

    Хотя вам не нужно использовать .local домен, рекомендуется различать реальные и перехватанные запросы. Кроме того, обратите внимание, что для .local домена используется протокол HTTP, а не HTTPS. Туннели разработки не поддерживают HTTPS для маршрутизации запросов на пользовательские заголовки узлов на локальном компьютере, поэтому необходимо использовать HTTP.

  2. Создайте файл перезаписи с именем devproxy-rewrites.json , который изменяет URL-адрес перехватываемых запросов:

    {
      "rewrites": [
        {
          "in": {
            "url": "^http://jsonplaceholder.typicode.local(.*)"
          },
          "out": {
            "url": "https://jsonplaceholder.typicode.com$1"
          }
        }
      ]
    }
    

    Файл перезаписи изменяет URL-адрес перехватываемых запросов в http://jsonplaceholder.typicode.local https://jsonplaceholder.typicode.com.

  3. Запустите прокси-сервер разработки, выполнив команду в командной строке devproxy.

    Снимок экрана: командная строка с запущенным прокси-сервером разработки.

  4. Запустите туннель разработки, выполнив команду в командной строке devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous.

    Снимок экрана: командная строка с запуском прокси-сервера разработки и туннеля разработки.

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

  5. Обратите внимание на URL-адрес туннеля разработки, который можно использовать для настройки облачной службы для вызова локального компьютера, например https://tunnel_id-8000.euw.devtunnels.ms.

  6. В веб-браузере откройте URL-адрес проверки туннеля разработки, например https://tunnel_id-8000-inspect.euw.devtunnels.ms.

  7. Имитируйте облачную службу, вызывающую облачный API с помощью URL-адреса туннеля разработки, выполнив команду в командной строке: curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1

    Примечание.

    Обратите внимание, что имя узла соответствует URL-адресу туннеля разработки на компьютере. Путь соответствует пути API, который требуется проверить.

    Снимок экрана: командная строка с запуском прокси-сервера разработки и туннеля разработки, а также вызов туннеля разработки.

  8. Обратите внимание, что прокси-сервер разработки перехватывает запрос и пересылает его в облачный API, в конечном итоге возвращая ответ клиенту.

  9. В веб-браузере обратите внимание на сведения о перехватываемом запросе и ответе из облачного API.

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

    Примечание.

    Обратите внимание, что URL-адрес записанного запроса является URL-адресом туннеля разработки. Заголовок записанного узла — это заголовок узла, перехватываемый прокси-сервером разработки.

  10. Закройте туннель разработки и остановите прокси разработки, нажав клавиши CTRL+C в соответствующих сеансах в командной строке.

Проверка запросов API с помощью прокси-сервера разработки и DevToolsPlugin

Другим способом проверки запросов API, связанных с проблемами облачной службы, является использование Dev Proxy DevToolsPlugin. Разница между использованием DevToolsPlugin и средствами проверки туннель разработки заключается в том, что DevToolsPlugin показывает, как прокси разработки перехватывает запрос, используя локальный или перезаписанный URL-адрес.

Настройка прокси-сервера разработки для проверки запросов API с помощью перехваченного URL-адреса с помощью devToolsPlugin

Сначала давайте настроим прокси-сервер разработки для проверки запросов облачных API. Давайте настроим DevToolsPlugin сведения о URL-адресе перед перезаписи прокси-сервера разработки.

  1. Обновите файл конфигурации прокси-сервера разработки, чтобы использовать DevToolsPlugin:

    {
      "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.23.0/rc.schema.json",
      "plugins": [
        {
          "name": "DevToolsPlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
        },
        {
          "name": "RewritePlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
          "configSection": "rewritePlugin"
        }
      ],
      "urlsToWatch": [
        "https://jsonplaceholder.typicode.com/*",
        "http://jsonplaceholder.typicode.local/*"
      ],
      "rewritePlugin": {
        "rewritesFile": "devproxy-rewrites.json"
      },
      "logLevel": "information",
      "newVersionNotification": "stable",
      "showSkipMessages": true
    }
    

    Примечание.

    Обратите внимание, что мы добавим DevToolsPlugin перед перезаписиPlugin. Сначала добавив DevToolsPlugin, он отображает сведения о перехватываемом запросе перед перезаписи.

  2. Запустите прокси-сервер разработки, выполнив команду в командной строке devproxy. Обратите внимание, что в прокси-сервере разработчика открывается окно веб-браузера с видимыми средствами разработки Chrome.

  3. Запустите туннель разработки, выполнив команду в командной строке devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous.

  4. Имитируйте облачную службу, вызывающую облачный API с помощью URL-адреса туннеля разработки, выполнив команду в командной строке: curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1

  5. В веб-браузере с помощью средств разработки Chrome обратите внимание на сведения о перехватываемом запросе и ответе из облачного API.

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

    Примечание.

    Обратите внимание, что URL-адрес записанного запроса является URL-адресом облачного API. Заголовок записанного узла — это заголовок узла, перехватываемый прокси-сервером разработки.

  6. Закройте туннель разработки и остановите прокси разработки, нажав клавиши CTRL+C в соответствующих сеансах в командной строке.

Настройка прокси-сервера разработки для проверки запросов API с помощью url-адреса перезаписи с помощью DevToolsPlugin

Затем обновим конфигурацию прокси-сервера разработки, чтобы отобразить сведения о перезаписываемом URL-адресе.

  1. Обновите файл конфигурации прокси-сервера разработки, переместив DevToolsPlugin после перезаписиPlugin:

    {
      "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.23.0/rc.schema.json",
      "plugins": [
        {
          "name": "RewritePlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
          "configSection": "rewritePlugin"
        },
        {
          "name": "DevToolsPlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
        }
      ],
      "urlsToWatch": [
        "https://jsonplaceholder.typicode.com/*",
        "http://jsonplaceholder.typicode.local/*"
      ],
      "rewritePlugin": {
        "rewritesFile": "devproxy-rewrites.json"
      },
      "logLevel": "information",
      "newVersionNotification": "stable",
      "showSkipMessages": true
    }
    
  2. Запустите прокси-сервер разработки, выполнив команду в командной строке devproxy. Обратите внимание, что в прокси-сервере разработчика открывается окно веб-браузера с видимыми средствами разработки Chrome.

  3. Запустите туннель разработки, выполнив команду в командной строке devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous.

  4. Имитируйте облачную службу, вызывающую облачный API с помощью URL-адреса туннеля разработки, выполнив команду в командной строке: curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1

  5. В веб-браузере с помощью средств разработки Chrome обратите внимание на сведения о перехватываемом запросе и ответе из облачного API.

    Снимок экрана: веб-браузер с средствами проверки прокси-сервера разработки, показывающими перехватываемый запрос с URL-адресами облачного API.

    Примечание.

    Обратите внимание, что url-адрес записанного запроса и заголовок узла показывают URL-адрес облачного API.

  6. Закройте туннель разработки и остановите прокси разработки, нажав клавиши CTRL+C в соответствующих сеансах в командной строке.

Итоги

Используя прокси-сервер разработки и туннель разработки, вы можете проверить запросы API, которые облачные службы выдают облачным API. Для проверки запросов можно использовать средства проверки туннель разработки или Dev Proxy DevToolsPlugin. Оба средства показывают сведения о перехватываемых запросах, включая URL-адрес, заголовки и текст, а также ответ из облачного API. Используя прокси-сервер разработки и туннель разработки, вы можете лучше понять, как облачные службы взаимодействуют с облачными API и устранять проблемы более эффективно.

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

Дополнительные сведения о перезаписиPlugin.