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

Завершено

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

Запуск API

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

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

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

Перейти к Swagger

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

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

    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 Explorer, чтобы увидеть изменения базы данных по мере их выполнения.

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

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

  2. Запрос одной пиццы:

    1. Прокрутите вниз до операции GET /Pizza/{id} и разверните ее, а затем нажмите кнопку "Попробовать".
    2. В поле идентификатора введите 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 Говядина:

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

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

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

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

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

  6. Вернитесь к операции 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
            }
        ]
    }
    
  7. Вы только что поняли курятую брикет пиццу с альфредо соусом и ананасом является ужасной идеей.

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

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

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

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

Совет

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

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