Alıştırma - Veri deposu ekleme

Tamamlandı

Pizza için Web API 'imizi uygulamaya başlamadan önce, üzerinde işlem gerçekleştirebilmemiz için bir veri deposuna sahip olmaları gerekir.

Envanterdeki bir pizza göstermek için model sınıfı gerekir. Model, bir pizza 'nin özelliklerini temsil eden özellikler içerir. Model, verileri Web API 'de geçirmek ve veri deposundaki pizza seçeneklerini sürdürmek için kullanılır. Bu birimde, veri deposu basit bir yerel bellek içi önbelleğe alma hizmeti olacaktır. gerçek dünyada bir uygulamada, Entity Framework Core gibi SQL Server gibi bir veritabanı kullanmayı göz önünde bulundurmanız gerekir.

Pizza modeli oluşturma

  1. Bir klasör oluşturmak için aşağıdaki komutu çalıştırın Models :

    mkdir Models
    

    ModelsVisual Studio Code klasörü seçin ve adlı yeni bir dosya ekleyin Pizza.cs .

    modeller klasörüne yeni bir dosya ekleme Visual Studio Code görüntüsü.

    Proje kökü artık boş bir dosya içeren bir Models Dizin içeriyor Pizza.cs . Dizinin adının Models olması bir kuraldır. Dizin adı web API'si tarafından kullanılan Model-View-Controller mimarisinden gelir.

  2. Models/Pizza.cs Bir pizza tanımlamak için aşağıdaki kodu ekleyin. Yaptığınız değişiklikleri kaydedin.

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

    İpucu

    Aşağıdaki klavye kısayolları Cloud Shell düzenleyicisinin içinde yararlı olur.

    Klavye kısayolu Komut
    Ctrl+V (Windows)
    ⌘+V (macOS)
    Yapıştır
    Ctrl+S (Windows)
    ⌘+S (macOS)
    Kaydet

Veri hizmeti Ekle

  1. Bir klasör oluşturmak için aşağıdaki komutu çalıştırın Services :

    mkdir Services
    

    Visual Studio Code klasörü seçin ve adlı yeni bir dosya ekleyin PizzaService.cs .

    hizmetler klasörüne yeni bir dosya ekleme Visual Studio Code görüntüsü.

  2. Services/PizzaService.cs Bellek içi bir pizza veri hizmeti oluşturmak için aşağıdaki kodu ekleyin. Yaptığınız değişiklikleri kaydedin.

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

    Bu hizmet, Web API 'imizin tanıtım amacıyla kullanacağı varsayılan olarak iki Pizzas ile basit bir bellek içi veri önbelleğe alma hizmeti sağlar. Web API 'sini durdurup başlattığınızda, bellek içi veri önbelleği, oluşturucusunun varsayılan iki Pizzas olarak sıfırlanır PizzaService .

Web API projesi oluşturma

Uygulamayı derlemek için aşağıdaki komutu çalıştırın:

dotnet build

Derleme hiç uyarı alınmadan başarılı olur. Derleme başarısız olursa, sorun giderme bilgileri için çıkışı inceleyin.

Pizza Modeli ve PizzaService sınıfı, sonraki ünitede denetleyici tarafından kullanılacaktır.