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

Dokončeno

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

K reprezentaci pizzy v inventáři je potřeba modelová třída. Model obsahuje vlastnosti, které představují charakteristiky pizzy. Model slouží k předání dat ve webovém rozhraní API a k zachování možností pizzy v datovém obchodě. V této jednotce bude toto úložiště dat jednoduchou místní službou ukládání do mezipamě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 Models složku:

    mkdir Models
    

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

    Obrázek Visual Studio Code přidání nového souboru do složky Models

    Kořen projektu teď obsahuje adresář Models s prázdným Pizza.cs souborem. Název adresáře Models je konvence. Název adresáře pochází z architektury Model-View-Controller, kterou používá webové rozhraní API.

  2. Do souboru přidejte následující Models/Pizza.cs kód, který definuje pizzu. Uložte provedené změny.

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

    Tip

    V Cloud Shell Editoru jsou užitečné následující klávesové zkratky.

    Klávesová zkratka Příkaz
    Ctrl+V (Windows)
    ⌘+V (macOS)
    Vložit
    Ctrl+S (Windows)
    ⌘+S (macOS)
    Uložit

Přidání datové služby

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

    mkdir Services
    

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

    Obrázek Visual Studio Code přidání nového souboru do složky Služby

  2. Do souboru přidejte následující Services/PizzaService.cs kód, který vytvoří datovou službu pizzy v paměti. Uložte provedené změny.

    using ContosoPizza.Models;
    using System.Collections.Generic;
    using System.Linq;
    
    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 jednoduchou službu ukládání dat do mezipaměti v paměti se dvěma pizzami ve výchozím nastavení, kterou bude naše webové rozhraní API používat pro ukázkové účely. Když webové rozhraní API zastavíme a spustíme, obnoví se datová mezipaměť v paměti 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íží.

Model Pizza a třídu PizzaService bude používat kontroler, který vytvoříme v další lekci.