Gyakorlat – Az alkalmazás futtatása
Az előző gyakorlatban a csapat API-jának kódját írta az adatbázis-műveletek implementálásához. Ebben a gyakorlatban most teszteli az API-t, hogy az csatlakozik az adatbázishoz.
Az API futtatása
Futtassa az alkalmazást a terminálpanelen:
dotnet run
Vizsgálja meg az alkalmazás futtatásából származó kimenetet, és jegyezze fel a következő információkat:
- Az EF Core naplóeseményekként visszhangozza az
info
SQL-parancsokat a végrehajtáskor. - Ha az adatbázis még nem létezik, a táblák és az indexek SQL-parancsokkal
CREATE
vannak definiálva. - Ha az adatbázis még nincs beállítva,
INSERT
a rendszer parancsokat hajt végre a magadatok hozzáadásához. - A biztonság érdekében a paraméterértékek nem jelennek meg a konzolon. Ezt a beállítást az EnableSensitiveDataLogging paranccsal módosíthatja.
- Az EF Core naplóeseményekként visszhangozza az
Az SQLite Explorerrel felfedezheti a magos adatbázist. Minden tábla tartalmaz adatokat.
Ugrás a Swaggerre
Most, hogy az API fut, tesztelje az API-t, és ellenőrizze, hogy a műveletek a várt módon működnek-e. Az API úgy van konfigurálva, hogy a Swagger használatával biztosítson egy teszt felhasználói felületet. A Swagger egy olyan eszköz, amely segít a RESTful webszolgáltatások tervezésében, összeállításában, dokumentálásában és felhasználásában.
Az alkalmazás futtatása után megjelenő kimenetben keresse meg azt a HTTP-URL-címet, ahol az alkalmazás figyel. A kimenet az alábbi példához hasonlóan néz ki:
info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:5200
Az URL-cím megnyitásához jelölje ki a Ctrl billentyűt lenyomva. A böngésző megnyílik az
/
API helyéhez, amely visszaadja a szövegetContoso Pizza management API. Go to /swagger to open the Swagger test UI.
A böngésző címsorában adja hozzá
/swagger
az URL-cím végéhez, és válassza az Enter elemet.
CRUD-műveletek tesztelése
A következő lépésekben a Swagger felhasználói felületével tesztelheti az API-k műveleteit úgy, ahogyan az ügyfélalkalmazások tennék. Az egyes műveletek után vizsgálja meg az adatbázist az SQLite Explorerben, és ellenőrizze, hogy az adatbázis megváltozik-e.
Kérje le a pizzák teljes listáját:
- A Pizza fejléc alatt bontsa ki a GET /Pizza műveletet, és válassza a Kipróbálás lehetőséget.
- Válassza a Végrehajtás gombot.
Az API JSON-ként adja vissza a pizzák listáját (a Válasz törzse alatt).
[ { "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 } ]
Tipp
Miért null értékű a és
toppings
asauce
tulajdonság? Ez az eredmény azért várható, mert aPizzaService.GetAll
metódusban nem aInclude
bővítménymetódust használta a navigációs tulajdonságok betöltésének megadására.Egyetlen pizza kérése:
- Görgessen le a GET /Pizza{id} művelethez, és bontsa ki. Ezután válassza a Kipróbálás lehetőséget.
- Az azonosító mezőbe írja be a kifejezést
2
, és válassza a Végrehajtás lehetőséget.
Az API a "Hawaiian" pizzát adja vissza. Figyelje meg, hogy a
sauce
éstoppings
a tulajdonság azért van feltöltve, mert a metódus aPizzaService.GetById
bővítménymetódustInclude
használja.Adjon hozzá egy új pizzát:
Görgessen fel a POST /Pizza művelethez (amely az imént használt GET műveletek között található), és bontsa ki. Ezután válassza a Kipróbálás lehetőséget.
A Kérelem törzse szövegmezőbe illessze be a következő JSON-t:
{ "name": "BBQ Beef", "sauce": { "name": "BBQ", "isVegan": false }, "toppings": [ { "name": "Smoked Beef Brisket", "calories": 250 } ] }
Válassza a Végrehajtás lehetőséget.
Az API visszaadja az új pizzát a
id
tulajdonsággal feltöltve.Adjon hozzá egy másik feltétet a BBQ Beef pizzához:
- Görgessen le a PUT /Pizza{id}/addtopping művelethez, és bontsa ki. Válassza a Kipróbálás lehetőséget.
- Az azonosító mezőbe írja be a 4 értéket.
- A toppingId mezőbe írja be az 5 értéket.
- Válassza a Végrehajtás lehetőséget.
Az API frissíti a pizzát, és egy sikeres kódot ad vissza. Az adatbázisban a rendszer hozzáad egy rekordot, amely
PizzaTopping
társítja a pizzát a feltéttel.Változtassa meg a mártást a BBQ Beef pizzán:
- Görgessen le a PUT /Pizza{id}/updatesauce művelethez, és bontsa ki. Válassza a Kipróbálás lehetőséget.
- Az azonosító mezőbe írja be a 4 értéket.
- A sauceId mezőbe írja be a 2 értéket.
- Válassza a Végrehajtás lehetőséget.
Az API frissíti a pizzát, és egy sikeres kódot ad vissza. Az adatbázisban a
Pizza
rekord frissül, hogy társítsa a pizzát az új mártással.Térjen vissza a GET /Pizza{id} művelethez, és kérje le a BBQ Beef pizzát az azonosító mező 4 értékre állításával. Ezután válassza a Végrehajtás lehetőséget. Figyelje meg, hogy a és
toppings
asauce
tulajdonságok ki vannak töltve.{ "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 } ] }
Rájött, hogy egy füstölt brisket pizza Alfredo mártással és ananászral szörnyű ötlet.
Törölje a pizzát:
- Keresse meg a DELETE /Pizza{id} műveletet, és bontsa ki. Válassza a Kipróbálás lehetőséget.
- Az azonosító mezőbe írja be a 4 értéket.
- Válassza a Végrehajtás lehetőséget.
Az API törli a pizzát, és egy sikeres kódot ad vissza. Az adatbázisban a
Pizza
rekord és a hozzá tartozó rekordokPizzaTopping
törlődnek.A futó alkalmazás termináljában válassza a CtrlCbillentyűkombinációt+ a futó alkalmazás leállításához.
Tipp
Kísérletezhet az alkalmazással. Amikor új adatbázissal szeretne kezdeni, állítsa le az alkalmazást, és törölje a ContosoPizza.db, .db-shm és .db-wal fájlokat. Ezután futtassa újra az alkalmazást.
Szép munka! Az alkalmazás a várt módon működik az adatbázissal! A következő leckében entitásmodelleket fog összehozni egy meglévő adatbázisból.