Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Использование прокси-сервера разработки — самый простой способ издеваться над API. Независимо от того, разрабатываете ли вы фронтенд, а API еще не готов, необходимо ли интегрировать вашу серверную часть с внешней службой или хотите протестировать приложение с использованием различных ответов, Dev Proxy может помочь имитировать ответы API. При интеграции API с облачными службами необходимо предоставить API через Интернет, чтобы облачная служба ей могли получить доступ. Для предоставления моделируемых ответов, смоделированных Dev Proxy через Интернет, используйте Dev Tunnels. В этой статье объясняется, как настроить макет ответов, которые будут предоставляться через Интернет с помощью Dev Tunnels.
Определение макетных ответов
Чтобы предоставить макетные ответы, имитированные прокси разработки через Интернет, начните с настройки макетов.
Это важно
На данный момент Dev Tunnels поддерживает только предоставление макетов HTTP-ответов по всему интернету.
Создание макетных ответов
Создайте файл с именем mocks.json
, содержащий макет ответа для пользовательского API. Например, чтобы симулировать запрос GET
к http://api.contoso.com/products
, определите:
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"request": {
"url": "http://api.contoso.com/products",
"method": "GET"
},
"response": {
"headers": [
{
"name": "content-type",
"value": "application/json"
}
],
"body": [
{
"id": 1,
"name": "Contoso Coffee Beans",
"price": 12.99
},
{
"id": 2,
"name": "Contoso Espresso Machine",
"price": 249.99
}
]
}
}
]
}
Кроме того, можно имитировать ошибки, двоичные ответы или условные ответы с помощью statusCode
, nth
или bodyFragment
.
Настройка MockResponsePlugin
Создайте файл конфигурации прокси-сервера разработки с именем devproxyrc.json
и включите следующую функцию MockResponsePlugin
:
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
"plugins": [
{
"name": "MockResponsePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "mocksPlugin"
}
],
"urlsToWatch": [
"http://api.contoso.com/*"
],
"mocksPlugin": {
"mocksFile": "mocks.json"
}
}
Это важно
Чтобы сопоставить несколько конечных точек, используйте подстановочные знаки в urlsToWatch
. Чтобы убедиться в правильном сопоставлении, сначала поместите более конкретные макеты в ваш mocks.json
.
Проверка конфигурации
Убедитесь, что макеты работают правильно, запустив прокси-сервер разработки и отправив запросы в макет API.
Запустите прокси-сервер разработки, если вы сохранили конфигурацию прокси-сервера разработки в файле с именем devproxyrc.json
в текущем рабочем каталоге:
devproxy
Проверьте макет, отправив запрос через Прокси разработки:
curl -x http://127.0.0.1:8000 http://api.contoso.com/products
Вы должны получить имитированный список продуктов, определенный в mocks.json
.
Предоставление макетного API с помощью туннелей разработки
Чтобы предоставить макетные ответы через Интернет, запустите туннель разработки, сопоставленный с портом прокси-сервера разработки. Настройте туннель для использования имени узла, настроенного для макетированного API.
Предупреждение
Разрешение анонимного доступа к туннелю разработки означает, что любой пользователь в Интернете может подключиться к локальному серверу, если он может угадать идентификатор туннеля разработки.
devtunnel host -p 8000 -a --host-header api.contoso.com
Эта команда сопоставляет порт прокси-сервера разработки с общедоступным URL-адресом HTTP. Теперь вы можете получить доступ к API макета из любого места:
curl http://<your-tunnel-id>-8000.<region>.devtunnels.ms/products