Cvičení – přidání úložiště dat

Dokončeno

Než začnete implementovat webové rozhraní API pro pizzu, musíte mít úložiště dat, na kterém můžete provádět operace.

Potřebujete model třídu, která bude reprezentovat pizzu v inventáři. Model obsahuje vlastnosti, které představují charakteristiky pizzy. Model se používá k předávání dat ve webovém rozhraní API a k zachování možností pizzy v úložišti dat.

V této lekci je toto úložiště dat jednoduchou místní službou ukládání do mezipaměti v paměti. V reálné aplikaci byste měli zvážit použití databáze, jako je SQL Server, s Entity Framework Core.

Vytvoření modelu pizzy

  1. Spuštěním následujícího příkazu vytvořte složku Models :

    mkdir Models
    

    Vyberte složku Models v editoru Visual Studio Code a přidejte nový soubor s názvem Pizza.cs.

    Screenshot of adding a new file to the Models folder in Visual Studio Code.

    Kořenový adresář projektu teď obsahuje adresář s prázdným ModelsPizza.cs souborem. Název adresáře Models je konvence. Název adresáře pochází z architektury kontroleru zobrazení modelu, kterou webové rozhraní API používá.

  2. Přidejte následující kód a Models/Pizza.cs uložte změny. Tato třída definuje pizzu.

    namespace ContosoPizza.Models;
    
    public class Pizza
    {
        public int Id { get; set; }
        public string? Name { get; set; }
        public bool IsGlutenFree { get; set; }
    }
    

Přidání datové služby

  1. Spuštěním následujícího příkazu vytvořte složku Services :

    mkdir Services
    

    Vyberte složku v editoru Visual Studio Code a přidejte nový soubor s názvem PizzaService.cs.

    Screenshot of Visual Studio Code that shows adding a new file to the Services folder.

  2. Přidejte následující kód a Services/PizzaService.cs uložte změny. Tento kód vytvoří datovou službu pizzy v paměti.

    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;
        }
    }
    

    Tato služba poskytuje ve výchozím nastavení jednoduchou službu ukládání dat do mezipaměti v paměti se dvěma pizzami. Naše webové rozhraní API používá službu k ukázkovým účelům. Když zastavíte a spustíte webové rozhraní API, mezipaměť dat v paměti se resetuje na dvě výchozí pizzy z konstruktoru PizzaService.

Sestavení projektu webového rozhraní API

Spuštěním následujícího příkazu sestavte aplikaci:

dotnet build

Sestavení proběhne úspěšně bez jakýchkoli upozornění. Pokud se sestavení nezdaří, zkontrolujte výstupní informace o odstraňování potíží.

V další lekci vytvoříte kontroler, který bude používat Pizza model a PizzaService třídu.