Упражнение. Запуск приложения
В предыдущем упражнении вы написали код для API команды для реализации операций базы данных. В этом упражнении вы протестируете API, подключенный к базе данных.
Запуск API
В области терминала запустите приложение:
dotnet run
Проверьте выходные данные запуска приложения и обратите внимание на следующие сведения:
- EF Core повторяет команды SQL в виде
info
событий журнала при выполнении. - Если база данных еще не существует, таблицы и индексы определяются с помощью команд SQL
CREATE
. - Если база данных еще не загружена,
INSERT
команды выполняются для добавления начальных данных. - Для безопасности значения параметров не переклочены в консоль. Этот параметр можно изменить с помощью EnableSensitiveDataLogging.
- EF Core повторяет команды SQL в виде
Используйте обозреватель SQLite для просмотра заполненной базы данных. Каждая таблица содержит данные.
Перейти к Swagger
Теперь, когда API запущен, проверьте API, чтобы узнать, работают ли операции должным образом. API настроен для использования Swagger для предоставления тестового пользовательского интерфейса. Swagger — это средство, которое помогает разрабатывать, создавать, документировать и использовать веб-службы RESTful.
В выходных данных, отображаемых после запуска приложения, найдите HTTP-URL-адрес, в котором приложение прослушивает. Результат должен быть аналогичным приведенному ниже:
info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:5200
Чтобы открыть URL-адрес, выберите его, удерживая клавиши CTRL. Браузер открывается в
/
расположении ДЛЯ API, который возвращает текст.Contoso Pizza management API. Go to /swagger to open the Swagger test UI.
В адресной строке браузера добавьте
/swagger
в конец URL-адреса и нажмите клавишу ВВОД.
Тестирование операций CRUD
В следующих шагах вы используете пользовательский интерфейс Swagger для проверки каждого из операций API таким образом, который будет выполнять клиентское приложение. После каждой операции проверьте базу данных в SQLite Explorer, чтобы увидеть изменения базы данных по мере их выполнения.
Запросите полный список пицц:
- В разделе заголовка пиццы разверните операцию GET /Pizza и нажмите кнопку "Попробовать".
- Нажмите кнопку Выполнить.
API возвращает список пицц в формате JSON (в тексте ответа).
[ { "id": 1, "name": "Meat Lovers", "sauce": null, "toppings": null }, { "id": 2, "name": "Hawaiian", "sauce": null, "toppings": null }, { "id": 3, "name": "Alfredo Chicken", "sauce": null, "toppings": null } ]
Совет
Почему значения
sauce
null иtoppings
свойства? Этот результат ожидается, так как вPizzaService.GetAll
методе не использовалсяInclude
метод расширения, чтобы указать, что свойства навигации должны быть загружены.Запрос одной пиццы:
- Прокрутите вниз до операции GET /Pizza/{id} и разверните ее, а затем нажмите кнопку "Попробовать".
- В поле идентификатора введите 2, а затем нажмите кнопку "Выполнить".
API возвращает гавайскую пиццу. Обратите внимание, что свойства
sauce
иtoppings
заполнены, так как методPizzaService.GetById
использует метод расширенияInclude
.Добавьте новую пиццу:
Прокрутите до операции POST /Pizza (расположенную между используемыми операциями GET) и разверните ее, а затем нажмите кнопку "Попробовать".
В текстовом поле "Запрос" вставьте следующий код JSON:
{ "name": "BBQ Beef", "sauce": { "name": "BBQ", "isVegan": false }, "toppings": [ { "name": "Smoked Beef Brisket", "calories": 250 } ] }
Выберите Выполнить.
API возвращает новую пиццу с заполненным свойством
id
.Добавьте еще одну начинку в пиццу BBQ Говядина:
- Прокрутите вниз до операции PUT /Pizza/{id}/addtopping и разверните ее, а затем нажмите кнопку "Попробовать".
- В поле идентификатора введите 4.
- В поле toppingId введите 5.
- Выберите Выполнить.
API обновляет пиццу и возвращает код успешного выполнения. В базе данных добавляется запись, чтобы
PizzaTopping
связать пиццу с начинкой.Измените соус на барбекю Говядина пицца:
- Прокрутите вниз до операции PUT /Pizza/{id}/updatesauce и разверните ее, а затем нажмите кнопку "Попробовать".
- В поле идентификатора введите 4.
- В поле sauceId введите 2.
- Выберите Выполнить.
API обновляет пиццу и возвращает код успешного выполнения. В базе данных запись обновляется,
Pizza
чтобы связать пиццу с новым соусом.Вернитесь к операции GET /Pizza/{id} и запросите пиццу BBQ Beef, задав поле идентификатора 4. Затем нажмите кнопку "Выполнить". Обратите внимание, что
sauce
заполнены свойства иtoppings
свойства.{ "id": 4, "name": "BBQ Beef", "sauce": { "id": 2, "name": "Alfredo", "isVegan": false }, "toppings": [ { "id": 5, "name": "Pineapple", "calories": 75 }, { "id": 6, "name": "Smoked Beef Brisket", "calories": 250 } ] }
Вы только что поняли курятую брикет пиццу с альфредо соусом и ананасом является ужасной идеей.
Удалите пиццу:
- Найдите операцию DELETE /Pizza/{id} и разверните ее, а затем нажмите кнопку "Попробовать".
- В поле идентификатора введите 4.
- Выберите Выполнить.
API удаляет пиццу и возвращает код успешного выполнения. В базе данных
Pizza
удаляются запись и связанные записиPizzaTopping
.В терминале с запущенным приложением нажмите клавиши CTRL+C, чтобы остановить работающее приложение.
Совет
Вы можете экспериментировать с приложением. Каждый раз, когда вы хотите начать с новой базы данных, остановите приложение и удалите ContosoPizza.db, .db-shm и .db-wal-файлы . Затем снова запустите приложение.
Отлично! Приложение правильно работает с вашей базой данных! В следующем уроке модели сущностей шаблонов из существующей базы данных.