Latihan - Menambahkan penyimpanan data
Sebelum Anda mulai menerapkan API web untuk pizza, Anda harus memiliki penyimpanan data tempat Anda dapat melakukan operasi.
Anda memerlukan model kelas untuk mewakili pizza dalam inventaris Anda. Model ini berisi properti yang mewakili karakteristik pizza. Model ini digunakan untuk meneruskan data di API web dan untuk mempertahankan opsi pizza di penyimpanan data.
Dalam unit ini, penyimpanan data tersebut adalah layanan penembolokan lokal dalam memori sederhana. Dalam aplikasi dunia nyata, Anda akan mempertimbangkan untuk menggunakan database, seperti SQL Server, dengan Entity Framework Core.
Membuat model pizza
Jalankan perintah berikut untuk membuat folder Model:
mkdir ModelsPilih folder Model di Visual Studio Code dan tambahkan file baru bernama Pizza.cs.
Akar proyek sekarang berisi direktori Models dengan file Pizza.cs kosong. Models Nama direktori adalah konvensi. Nama direktori berasal dari arsitektur model-view-controller yang digunakan API web.
Tambahkan kode berikut ke Models/Pizza.cs dan simpan perubahan Anda. Kelas ini mendefinisikan pizza.
namespace ContosoPizza.Models; public class Pizza { public int Id { get; set; } public string? Name { get; set; } public bool IsGlutenFree { get; set; } }
Menambahkan layanan data
Jalankan perintah berikut untuk membuat folder Layanan:
mkdir ServicesPilih folder di Visual Studio Code dan tambahkan file baru bernama PizzaService.cs.
Tambahkan kode berikut ke Services/PizzaService.cs dan simpan perubahan Anda. Kode ini membuat layanan data pizza dalam memori.
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; } }Layanan ini menyediakan layanan penembolokan data dalam memori sederhana dengan dua pizza secara default. API web kami menggunakan layanan tersebut untuk tujuan demo. Saat Anda menghentikan dan memulai API web, cache data dalam memori diatur ulang ke dua pizza default dari konstruktor
PizzaService.
Membuat proyek web API
Jalankan perintah berikut untuk membuat gambar:
dotnet build
Build berhasil tanpa peringatan. Jika build gagal, periksa output untuk informasi pemecahan masalah.
Di unit berikutnya, Anda akan membuat pengontrol yang akan menggunakan model Pizza dan kelas PizzaService.