Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При создании приложений часто взаимодействуют с внутренними API. Иногда эти API еще недоступны или другие команды обновляют их в соответствии с последними требованиями. Чтобы избежать ожидания, обычно создается макет API, который возвращает необходимые данные. Хотя этот подход разблокирует вас, это требует времени для создания API, который вы в конечном итоге заменяете реальным. Чтобы избежать тратить время, можно использовать прокси разработки для имитации API CRUD и ускорения разработки.
Используя CrudApiPlugin
, вы можете симулировать API CRUD (создание, чтение, обновление, удаление) с использованием внутренняего хранилища данных. С помощью простого файла конфигурации можно определить URL-адреса, поддерживаемые API макета и возвращаемые им данные. Плагин также поддерживает CORS для кросс-доменного использования в клиентских приложениях.
MockResponsePlugin
позволяет вам определять статические макетные ответы, а CrudApiPlugin
— динамический макетный API, который можно использовать для взаимодействия с данными и наблюдения за изменениями, отраженными в макетном наборе данных.
Сценарий
Предположим, вы создаете приложение, которое позволяет пользователям управлять клиентами. Чтобы получить данные, необходимо вызвать /customers
конечную точку серверного API. Чтобы избежать ожидания завершения работы серверной команды, вы решили использовать прокси разработки для имитации API и возврата необходимых данных.
Начните с включения CrudApiPlugin
и настройки его для использования файла customers-api.json
.
{
"name": "CrudApiPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "customersApi"
}
{
"customersApi": {
"apiFile": "customers-api.json"
}
}
В файле вы определяете API тестовых клиентов customers-api.json
.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.0/crudapiplugin.schema.json",
"baseUrl": "https://api.contoso.com/v1/customers",
"dataFile": "customers-data.json",
"actions": [
{
"action": "getAll"
},
{
"action": "getOne",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "create"
},
{
"action": "merge",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "delete",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
}
]
}
В свойстве baseUrl
определяется базовый URL-адрес api макета. В свойстве dataFile
определяется файл, содержащий макет данных клиента. В свойстве actions
определяются поддерживаемые действия и их сопоставление с методами и URL-адресами HTTP. Вы хотите использовать API для:
- получите всех клиентов через вызов
GET /v1/customers
- получите одного клиента, вызвав
GET /v1/customers/{customer-id}
- добавьте нового клиента, вызывая
POST /v1/customers
- обновление клиента путем вызова
PATCH /v1/customers/{customer-id}
- удаление клиента путем вызова
DELETE /v1/customers/{customer-id}
В ваших URL-адресах вы используете параметр {customer-id}
, который плагин заменяет фактическим идентификатором клиента из URL. Плагин также использует параметр {customer-id}
в запросе JSONPath для поиска клиента в файле данных.
customers-data.json
В файле определяется макет данных клиента.
[
{
"id": 1,
"name": "Contoso",
"address": "4567 Main St Buffalo, NY 98052"
},
{
"id": 2,
"name": "Fabrikam",
"address": "4567 Main St Buffalo, NY 98052"
}
]
Вы запускаете прокси-сервер разработки и вызываете конечную точку https://api.contoso.com/v1/customers
. Прокси-сервер разработки перехватывает запрос и возвращает макет данных клиента.
[
{
"id": 1,
"name": "Contoso",
"address": "4567 Main St Buffalo, NY 98052"
},
{
"id": 2,
"name": "Fabrikam",
"address": "4567 Main St Buffalo, NY 98052"
}
]
Следующий шаг
Дополнительные сведения о CrudApiPlugin.
Примеры
См. также связанные примеры Dev Proxy: