Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
На первый взгляд
Цель: Создание динамического макета API с полными операциями CRUD
Время: 15 минут
Подключаемые модули:CrudApiPlugin
Предварительные требования:настройка прокси-сервера разработки
При создании приложений часто взаимодействуют с внутренними API. Иногда эти API еще недоступны или другие команды обновляют их в соответствии с последними требованиями. Чтобы избежать ожидания, обычно создается макет API, который возвращает необходимые данные. Хотя этот подход разблокирует вас, это требует времени для создания API, который вы в конечном итоге заменяете реальным. Чтобы избежать тратить время, можно использовать прокси разработки для имитации API CRUD и ускорения разработки.
Используя CrudApiPlugin, вы можете симулировать API CRUD (создание, чтение, обновление, удаление) с использованием внутренняего хранилища данных. С помощью простого файла конфигурации можно определить URL-адреса, поддерживаемые API макета и возвращаемые им данные. Плагин также поддерживает CORS для кросс-доменного использования в клиентских приложениях.
MockResponsePlugin позволяет вам определять статические макетные ответы, а CrudApiPlugin — динамический макетный API, который можно использовать для взаимодействия с данными и наблюдения за изменениями, отраженными в макетном наборе данных.
Сценарий
Предположим, вы создаете приложение, которое позволяет пользователям управлять клиентами. Чтобы получить данные, необходимо вызвать /customers конечную точку серверного API. Чтобы избежать ожидания завершения работы серверной команды, вы решили использовать прокси разработки для имитации API и возврата необходимых данных.
Начните с включения CrudApiPlugin и настройки его для использования файла customers-api.json.
Файл:devproxyrc.json (экземпляр подключаемого модуля)
{
"name": "CrudApiPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "customersApi"
}
Файл:devproxyrc.json (раздел конфигурации)
{
"customersApi": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/crudapiplugin.schema.json",
"apiFile": "customers-api.json"
}
}
В файле вы определяете API тестовых клиентов customers-api.json.
Файл: customers-api.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/crudapiplugin.apifile.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 В файле определяется макет данных клиента.
Файл: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:
См. также
- Фиктивные ответы — возврат статических фиктивных ответов
- Имитация API CRUD через Интернет — предоставление общедоступного API макета
- Имитация API CRUD, защищенного ключом API . Добавление проверки подлинности ключа API
- Смоделируйте CRUD API, защищённый с помощью Microsoft Entra — добавьте аутентификацию Entra
- Глоссарий — терминология прокси для разработки