Cvičení – spuštění aplikace

Dokončeno

V předchozím cvičení jste pro rozhraní API vašeho týmu napsali kód pro implementaci databázových operací. V tomto cvičení otestujete rozhraní API, které je teď připojené k databázi.

Spusťte rozhraní API

  1. V podokně terminálu spusťte aplikaci:

    dotnet run
    
  2. Zkontrolujte výstup ze spuštění aplikace a poznamenejte si následující informace:

    • EF Core při spuštění vrací příkazy SQL jako info události protokolu.
    • Pokud databáze ještě neexistuje, tabulky a indexy se definují pomocí příkazů SQL CREATE .
    • Pokud databáze ještě není dosazená, INSERT spustí se příkazy pro přidání počátečních dat.
    • Z důvodu zabezpečení se hodnoty parametrů neodepisují do konzoly nástroje . Toto nastavení můžete změnit pomocí enableSensitiveDataLogging.
  3. Pomocí průzkumníka SQLite prozkoumejte dosazenou databázi. Každá tabulka obsahuje data.

Přejít na Swagger

Teď, když je rozhraní API spuštěné, otestujte ho a zjistěte, jestli operace fungují podle očekávání. Rozhraní API je nakonfigurované tak, aby k poskytování testovacího uživatelského rozhraní používalo Swagger . Swagger je nástroj, který pomáhá navrhovat, sestavovat, dokumentovat a využívat webové služby RESTful.

  1. Ve výstupu, který se zobrazí po spuštění aplikace, najděte adresu URL protokolu HTTP, kde aplikace naslouchá. Výstup vypadá podobně jako v následujícím příkladu:

    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: http://localhost:5200
    
  2. Adresu URL otevřete tak, že ji vyberete a podržíte klávesu Ctrl. Prohlížeč se otevře v / umístění pro rozhraní API, které vrátí text. Contoso Pizza management API. Go to /swagger to open the Swagger test UI.

  3. Na panelu Adresa v prohlížeči přidejte /swagger na konec adresy URL a vyberte Enter.

Testování operací CRUD

V následujících krocích použijete Swagger UI k otestování jednotlivých operací rozhraní API tak, jak by to dělala klientská aplikace. Po každé operaci zkontrolujte databázi v průzkumníku SQLite a podívejte se, jak se databáze mění.

  1. Vyžádejte si úplný seznam pizz:

    1. Pod nadpisem Pizza rozbalte operaci GET /Pizza a vyberte Vyzkoušet.
    2. Vyberte tlačítko Execute (Spustit).

    Rozhraní API vrátí seznam pizz jako JSON (v části Text odpovědi).

    [
        {
            "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
        }
        ]
    

    Tip

    Proč jsou sauce vlastnosti a toppings null? Tento výsledek je očekávaný, protože v PizzaService.GetAll metodě jste nepoužíli rozšiřující metodu Include k určení, že se mají načíst vlastnosti navigace.

  2. Žádost o jednu pizzu:

    1. Posuňte se dolů k operaci GET /Pizza{id} a rozbalte ji. Pak vyberte Vyzkoušet.
    2. Do pole id zadejte 2 a vyberte Execute (Provést).

    Rozhraní API vrátí havajskou pizzu. Všimněte si, že sauce vlastnosti a toppings jsou vyplněné, protože PizzaService.GetById metoda používá rozšiřující metodu Include .

  3. Přidejte novou pizzu:

    1. Posuňte se nahoru k operaci POST /Pizza (nachází se mezi operacemi GET , které jste právě použili) a rozbalte ji. Pak vyberte Vyzkoušet.

    2. Do textového pole Text požadavku vložte následující kód JSON:

      {
        "name": "BBQ Beef",
        "sauce": {
          "name": "BBQ",
          "isVegan": false
        },
        "toppings": [
          {
            "name": "Smoked Beef Brisket",
            "calories": 250
          }
        ]
      }
      
    3. Vyberte Execute (Provést).

    Rozhraní API vrátí novou pizzu s vyplněnou id vlastností .

  4. Přidejte další polevku do bbq hovězí pizzy:

    1. Posuňte se dolů na operaci PUT /Pizza{id}/addtopping a rozbalte ji. Vyberte Vyzkoušet.
    2. Do pole ID zadejte 4.
    3. Do pole toppingId zadejte 5.
    4. Vyberte Execute (Provést).

    Rozhraní API aktualizuje pizzu a vrátí kód úspěchu. V databázi se přidá PizzaTopping záznam, který přidruží pizzu k polévce.

  5. Změňte omáčku na bbq hovězí pizzu:

    1. Posuňte se dolů na operaci PUT /Pizza{id}/updatesauce a rozbalte ji. Vyberte Vyzkoušet.
    2. Do pole ID zadejte 4.
    3. Do pole sauceId zadejte 2.
    4. Vyberte Execute (Provést).

    Rozhraní API aktualizuje pizzu a vrátí kód úspěchu. V databázi se záznam aktualizuje tak, Pizza aby přidružil pizzu k nové omáčce.

  6. Vraťte se k operaci GET /Pizza{id} a vyžádejte si bbq beef pizza nastavením pole ID na hodnotu 4. Pak vyberte Execute (Provést). Všimněte si, že jsou vyplněny sauce vlastnosti a 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. Uvědomili jste si, že uzená pizza s alfredovou omáčkou a ananasem je hrozný nápad.

    Odstraňte pizzu:

    1. Vyhledejte operaci DELETE /Pizza{id} a rozbalte ji. Vyberte Vyzkoušet.
    2. Do pole ID zadejte 4.
    3. Vyberte Execute (Provést).

    Rozhraní API odstraní pizzu a vrátí kód úspěchu. V databázi Pizza se odstraní záznam a přidružené záznamy v PizzaTopping souboru .

  8. V terminálu se spuštěnou aplikací stisknutím klávesy Ctrl+C zastavte spuštěnou aplikaci.

Tip

S aplikací můžete experimentovat. Kdykoli chcete začít s novou databází, zastavte aplikaci a odstraňte soubory ContosoPizza.db, .db-shm a .db-wal . Pak aplikaci znovu spusťte.

Skvělá práce! Aplikace pracuje s vaší databází podle očekávání. V další lekci vygenerujete modely entit z existující databáze.