Cvičení – spuštění aplikace
V předchozím cvičení jste napsali kód pro rozhraní API vašeho týmu pro implementaci databázových operací. V tomto cvičení otestujete rozhraní API, které jste připojili k databázi.
Spusťte rozhraní API
V podokně terminálu spusťte aplikaci:
dotnet run
Zkontrolujte výstup spuštění aplikace a poznamenejte si následující informace:
- EF Core při spuštění vypíše 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 se databáze ještě nenasadí,
INSERT
spustí se příkazy pro přidání počátečních dat. - V případě zabezpečení se hodnoty parametrů neodhalí do konzoly. Toto nastavení můžete změnit pomocí enableSensitiveDataLogging.
- EF Core při spuštění vypíše příkazy SQL jako
Pomocí Průzkumníka SQLite můžete prozkoumat počáteční databázi. Každá tabulka obsahuje data.
Přejít na Swagger
Teď, když je rozhraní API spuštěné, otestujte rozhraní API, abyste zjistili, jestli operace fungují podle očekávání. Rozhraní API je nakonfigurované tak, aby pomocí Swaggeru poskytovalo testovací uživatelské rozhraní. Swagger je nástroj, který vám pomůže navrhovat, sestavovat, dokumentovat a využívat webové služby RESTful.
Ve výstupu, který se zobrazí po spuštění aplikace, vyhledejte adresu URL 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
Adresu URL otevřete tak, že ji vyberete podržením klávesy Ctrl. Prohlížeč se otevře v
/
umístění rozhraní API, které vrátí text.Contoso Pizza management API. Go to /swagger to open the Swagger test UI.
Na panelu Adresa prohlížeče přidejte
/swagger
na konec adresy URL a vyberte Enter.
Testování operací CRUD
V následujícíchkrocích Po každé operaci zkontrolujte databázi v Průzkumníku SQLite a podívejte se, jak se databáze mění.
Požádejte o úplný seznam pizz:
- Pod nadpisem Pizza rozbalte operaci GET /Pizza a vyberte tlačítko Vyzkoušet.
- Vyberte tlačítko 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
hodnoty null atoppings
vlastnosti? Tento výsledek je očekávaný, protože vPizzaService.GetAll
metodě jste nepoužíli metoduInclude
rozšíření k určení, že by měly být načteny vlastnosti navigace.Požádejte o jednu pizzu:
- Posuňte se dolů k operaci GET /Pizza/{id} a rozbalte ji a pak vyberte tlačítko Vyzkoušet .
- Do pole ID zadejte 2 a pak vyberte Spustit.
Rozhraní API vrátí pizzu "Hawaiian". Všimněte si, že jsou vyplněné
sauce
vlastnostitoppings
, protožePizzaService.GetById
metoda používá metoduInclude
rozšíření.Přidejte novou pizzu:
Posuňte se nahoru k operaci POST /Pizza (nachází se mezi použitými operacemi GET ) a rozbalte ji a pak vyberte tlačítko Vyzkoušet .
Do textového pole Požadavek vložte následující KÓD JSON:
{ "name": "BBQ Beef", "sauce": { "name": "BBQ", "isVegan": false }, "toppings": [ { "name": "Smoked Beef Brisket", "calories": 250 } ] }
Vyberte Provést.
Rozhraní API vrátí novou pizzu s vyplněnou
id
vlastností.Přidejte další zarování na bbq hovězí pizzu:
- Posuňte se dolů k operaci PUT /Pizza/{id}/addtopping a rozbalte ji a vyberte tlačítko Vyzkoušet .
- Do pole ID zadejte 4.
- Do pole StopId zadejte 5.
- Vyberte Provést.
Rozhraní API aktualizuje pizzu a vrátí kód úspěchu. V databázi se přidá záznam, který
PizzaTopping
přidruží pizzu k zastavení.Změňte omáčku na BBQ Hovězí pizzu:
- Posuňte se dolů k operaci PUT /Pizza/{id}/updatesauce a rozbalte ji a vyberte tlačítko Vyzkoušet .
- Do pole ID zadejte 4.
- Do pole Id omáčky zadejte 2.
- Vyberte Provést.
Rozhraní API aktualizuje pizzu a vrátí kód úspěchu. V databázi se záznam aktualizuje,
Pizza
aby přidružil pizzu k nové omáčkě.Vraťte se do operace GET /Pizza/{id} a požádejte o bbq hovězí pizzu nastavením pole ID na 4. Pak vyberte Spustit. Všimněte si, že jsou vyplněné
sauce
vlastnosti atoppings
vlastnosti.{ "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 } ] }
Právě jste si uvědomili kouřenou brisketovou pizzu s Alfredo omáčkou a ananasem je hrozný nápad.
Odstraňte pizzu:
- Najděte operaci DELETE /Pizza/{id} a rozbalte ji a pak vyberte tlačítko Vyzkoušet.
- Do pole ID zadejte 4.
- Vyberte 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áznamyPizzaTopping
.V terminálu se spuštěnou aplikací ukončete spuštěním klávesy Ctrl+C.
Tip
S aplikací můžete experimentovat. Kdykoli budete chtít začít s novou databází, zastavte aplikaci a odstraňte ContosoPizza.db, .db shm a soubory .db wal . Pak aplikaci spusťte znovu.
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.