Cvičení – spuštění aplikace
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
V podokně terminálu spusťte aplikaci:
dotnet run
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.
- EF Core při spuštění vrací příkazy SQL jako
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.
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
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.
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í.
Vyžádejte si úplný seznam pizz:
- Pod nadpisem Pizza rozbalte operaci GET /Pizza a vyberte Vyzkoušet.
- 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 atoppings
null? Tento výsledek je očekávaný, protože vPizzaService.GetAll
metodě jste nepoužíli rozšiřující metoduInclude
k určení, že se mají načíst vlastnosti navigace.Žádost o jednu pizzu:
- Posuňte se dolů k operaci GET /Pizza{id} a rozbalte ji. Pak vyberte Vyzkoušet.
- Do pole id zadejte
2
a vyberte Execute (Provést).
Rozhraní API vrátí havajskou pizzu. Všimněte si, že
sauce
vlastnosti atoppings
jsou vyplněné, protožePizzaService.GetById
metoda používá rozšiřující metoduInclude
.Přidejte novou pizzu:
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.
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 } ] }
Vyberte Execute (Provést).
Rozhraní API vrátí novou pizzu s vyplněnou
id
vlastností .Přidejte další polevku do bbq hovězí pizzy:
- Posuňte se dolů na operaci PUT /Pizza{id}/addtopping a rozbalte ji. Vyberte Vyzkoušet.
- Do pole ID zadejte 4.
- Do pole toppingId zadejte 5.
- 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.Změňte omáčku na bbq hovězí pizzu:
- Posuňte se dolů na operaci PUT /Pizza{id}/updatesauce a rozbalte ji. Vyberte Vyzkoušet.
- Do pole ID zadejte 4.
- Do pole sauceId zadejte 2.
- 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.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 atoppings
.{ "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 } ] }
Uvědomili jste si, že uzená pizza s alfredovou omáčkou a ananasem je hrozný nápad.
Odstraňte pizzu:
- Vyhledejte operaci DELETE /Pizza{id} a rozbalte ji. Vyberte Vyzkoušet.
- Do pole ID zadejte 4.
- 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 vPizzaTopping
souboru .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.