Упражнение. Запуск приложения

Завершено

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

Запуск API

  1. В области терминала запустите приложение:

    dotnet run
    
  2. Проверьте выходные данные запуска приложения и обратите внимание на следующие сведения:

    • EF Core повторяет команды SQL как info события журнала при их выполнении.
    • Если база данных еще не существует, таблицы и индексы определяются с помощью команд SQL CREATE .
    • Если база данных еще не была засеяна, INSERT выполняются команды для добавления начальных данных.
    • В целях безопасности значения параметров не выводятся в консоли. Этот параметр можно изменить с помощью enableSensitiveDataLogging.
  3. Используйте обозреватель SQLite для просмотра заполненной базы данных. Каждая таблица содержит данные.

Перейти к Swagger

Теперь, когда API запущен, протестируйте ЕГО, чтобы проверить, работают ли операции должным образом. API настроен для использования Swagger для предоставления тестового пользовательского интерфейса. Swagger — это средство, которое помогает проектировать, создавать, документировать и использовать веб-службы RESTful.

  1. В выходных данных, которые появляются после запуска приложения, найдите URL-адрес HTTP, по которому приложение ожидает передачи данных. Результат должен быть аналогичным приведенному ниже:

    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: http://localhost:5200
    
  2. Чтобы открыть URL-адрес, выберите его, удерживая нажатой клавишу CTRL. В браузере / откроется расположение API, которое возвращает текст. Contoso Pizza management API. Go to /swagger to open the Swagger test UI.

  3. В адресной строке браузера добавьте /swagger в конец URL-адреса и нажмите клавишу ВВОД.

Тестирование операций CRUD

На следующих шагах вы используете пользовательский интерфейс Swagger для тестирования каждой из операций API так, как это выполняет клиентское приложение. После каждой операции проверяйте базу данных в SQLite Обозреватель, чтобы увидеть изменения базы данных по мере их изменения.

  1. Запросите полный список пицц:

    1. Под заголовком Pizza разверните операцию GET /Pizza и выберите Попробовать.
    2. Нажмите кнопку Выполнить.

    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 и toppings имеют значение NULL? Этот результат является ожидаемым PizzaService.GetAll , так как в методе вы не использовали Include метод расширения для указания, что свойства навигации должны быть загружены.

  2. Запросите одну пиццу:

    1. Прокрутите вниз до операции GET /Pizza{id} и разверните ее. Затем выберите Попробовать.
    2. В поле id (идентификатор ) введите 2 и нажмите кнопку Выполнить.

    API возвращает гавайскую пиццу. Обратите внимание, что свойства sauce и toppings заполнены, так как метод PizzaService.GetById использует метод расширения Include.

  3. Добавьте новую пиццу:

    1. Прокрутите вверх до операции POST /Pizza (расположенной между операциями GET , которые вы только что использовали) и разверните ее. Затем выберите Попробовать.

    2. В текстовое поле Текст запроса вставьте следующий код JSON:

      {
        "name": "BBQ Beef",
        "sauce": {
          "name": "BBQ",
          "isVegan": false
        },
        "toppings": [
          {
            "name": "Smoked Beef Brisket",
            "calories": 250
          }
        ]
      }
      
    3. Нажмите кнопку Выполнить.

    API возвращает новую пиццу с id заполненным свойством .

  4. Добавьте еще одну начинку в пиццу BBQ Beef:

    1. Прокрутите вниз до операции PUT /Pizza{id}/addtopping и разверните ее. Выберите Опробовать.
    2. В поле id (идентификатор ) введите 4.
    3. В поле toppingId введите 5.
    4. Нажмите кнопку Выполнить.

    API обновляет пиццу и возвращает код успешного выполнения. В базу данных добавляется запись , PizzaTopping чтобы связать пиццу с начинкой.

  5. Изменить соус на барбекю Говядина пиццы:

    1. Прокрутите вниз до операции PUT /Pizza{id}/updatesauce и разверните ее. Выберите Опробовать.
    2. В поле id (идентификатор ) введите 4.
    3. В поле sauceId введите 2.
    4. Нажмите кнопку Выполнить.

    API обновляет пиццу и возвращает код успешного выполнения. В базе данных запись обновляется, Pizza чтобы связать пиццу с новым соусом.

  6. Вернитесь к операции GET /Pizza{id} и запросите пиццу BBQ Beef, задав для поля id значение 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
            }
        ]
    }
    
  7. Вы поняли, что копченая пицца грудинка с соусом Альфредо и ананасом является ужасной идеей.

    Удалите пиццу:

    1. Найдите операцию DELETE /Pizza{id} и разверните ее. Выберите Опробовать.
    2. В поле id (идентификатор ) введите 4.
    3. Нажмите кнопку Выполнить.

    API удаляет пиццу и возвращает код успешного выполнения. В базе данных удаляются Pizza записи и связанные записи в PizzaTopping .

  8. В терминале с запущенным приложением нажмите клавиши CTRL+C , чтобы остановить работающее приложение.

Совет

Вы можете поэкспериментировать с приложением. Всякий раз, когда вы хотите начать работу с новой базой данных, остановите приложение и удалите файлы ContosoPizza.db, .db-shm и .db-wal . Затем снова запустите приложение.

Отлично! Приложение правильно работает с вашей базой данных! В следующем уроке вы создадите шаблоны для моделей сущностей из существующей базы данных.