Gyakorlat – Az alkalmazás futtatása

Befejeződött

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

  1. Futtassa az alkalmazást a terminálpanelen:

    dotnet run
    
  2. 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.
  3. 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.

  1. 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
    
  2. 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öveget Contoso Pizza management API. Go to /swagger to open the Swagger test UI.

  3. 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.

  1. Kérje le a pizzák teljes listáját:

    1. A Pizza fejléc alatt bontsa ki a GET /Pizza műveletet, és válassza a Kipróbálás lehetőséget.
    2. 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 a sauce tulajdonság? Ez az eredmény azért várható, mert a PizzaService.GetAll metódusban nem a Include bővítménymetódust használta a navigációs tulajdonságok betöltésének megadására.

  2. Egyetlen pizza kérése:

    1. Görgessen le a GET /Pizza{id} művelethez, és bontsa ki. Ezután válassza a Kipróbálás lehetőséget.
    2. 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 és toppings a tulajdonság azért van feltöltve, mert a metódus a PizzaService.GetById bővítménymetódust Include használja.

  3. Adjon hozzá egy új pizzát:

    1. 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.

    2. 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
          }
        ]
      }
      
    3. Válassza a Végrehajtás lehetőséget.

    Az API visszaadja az új pizzát a id tulajdonsággal feltöltve.

  4. Adjon hozzá egy másik feltétet a BBQ Beef pizzához:

    1. Görgessen le a PUT /Pizza{id}/addtopping művelethez, és bontsa ki. Válassza a Kipróbálás lehetőséget.
    2. Az azonosító mezőbe írja be a 4 értéket.
    3. A toppingId mezőbe írja be az 5 értéket.
    4. 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.

  5. Változtassa meg a mártást a BBQ Beef pizzán:

    1. Görgessen le a PUT /Pizza{id}/updatesauce művelethez, és bontsa ki. Válassza a Kipróbálás lehetőséget.
    2. Az azonosító mezőbe írja be a 4 értéket.
    3. A sauceId mezőbe írja be a 2 értéket.
    4. 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.

  6. 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 a sauce 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
            }
        ]
    }
    
  7. 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:

    1. Keresse meg a DELETE /Pizza{id} műveletet, és bontsa ki. Válassza a Kipróbálás lehetőséget.
    2. Az azonosító mezőbe írja be a 4 értéket.
    3. 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ó rekordok PizzaTopping törlődnek.

  8. 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.