Gyakorlat – Adattár hozzáadása
Mielőtt elkezdené a pizza webes API-jának implementálását, rendelkeznie kell egy adattárzal, amelyen műveleteket hajthat végre.
Szüksége van egy model
osztályra, amely a pizzát képviseli a leltárában. A modell olyan tulajdonságokat tartalmaz, amelyek egy pizza jellemzőit képviselik. A modell arra szolgál, hogy adatokat továbbítson a webes API-ban, és megőrizze a pizzabeállításokat az adattárban.
Ebben a leckében ez az adattár egy egyszerű helyi memóriabeli gyorsítótárazási szolgáltatás. Egy valós alkalmazásban érdemes lehet adatbázist (például SQL Servert) használni az Entity Framework Core használatával.
Pizzamodell létrehozása
Futtassa a következő parancsot a Models mappa létrehozásához:
mkdir Models
Válassza ki a Visual Studio Code Modellek mappáját, és adjon hozzá egy Pizza.cs nevű új fájlt.
A projektgyökér most egy Models üres Pizza.cs fájlt tartalmazó könyvtárat tartalmaz. A Models könyvtárnév egy konvenció. A címtár neve a webes API által használt modellnézet-vezérlő architektúrából származik.
Adja hozzá a következő kódot, Models/Pizza.cs és mentse a módosításokat. Ez az osztály meghatároz egy pizzát.
namespace ContosoPizza.Models; public class Pizza { public int Id { get; set; } public string? Name { get; set; } public bool IsGlutenFree { get; set; } }
Adatszolgáltatás hozzáadása
Futtassa a következő parancsot egy Services-mappa létrehozásához:
mkdir Services
Jelölje ki a Mappát a Visual Studio Code-ban, és adjon hozzá egy új, PizzaService.cs nevű fájlt.
Adja hozzá a következő kódot, Services/PizzaService.cs és mentse a módosításokat. Ez a kód létrehoz egy memóriabeli pizzaadat-szolgáltatást.
using ContosoPizza.Models; namespace ContosoPizza.Services; public static class PizzaService { static List<Pizza> Pizzas { get; } static int nextId = 3; static PizzaService() { Pizzas = new List<Pizza> { new Pizza { Id = 1, Name = "Classic Italian", IsGlutenFree = false }, new Pizza { Id = 2, Name = "Veggie", IsGlutenFree = true } }; } public static List<Pizza> GetAll() => Pizzas; public static Pizza? Get(int id) => Pizzas.FirstOrDefault(p => p.Id == id); public static void Add(Pizza pizza) { pizza.Id = nextId++; Pizzas.Add(pizza); } public static void Delete(int id) { var pizza = Get(id); if(pizza is null) return; Pizzas.Remove(pizza); } public static void Update(Pizza pizza) { var index = Pizzas.FindIndex(p => p.Id == pizza.Id); if(index == -1) return; Pizzas[index] = pizza; } }
Ez a szolgáltatás alapértelmezés szerint egy egyszerű memóriabeli adat-gyorsítótárazási szolgáltatást biztosít, „két pizza méretű” kapacitással. A webes API ezt a szolgáltatást demo célokra használja. Amikor leállítja, majd újraindítja a webes API-t, az in-memory adatgyorsítótár visszaáll a konstruktor két alapértelmezett pizzájára
PizzaService
.
A webes API-projekt létrehozása
Az alkalmazás felépítéséhez futtassa az alábbi parancsot:
dotnet build
A buildelés figyelmeztetések nélkül, sikeresen befejeződik. Ha a buildelés sikertelen, a kimenetben találhat hibaelhárítási információt.
A következő leckében létrehoz egy vezérlőt, amely a Pizza
modellt és PizzaService
osztályt fogja használni.