تمرين - إضافة مخزن بيانات
قبل أن تبدأ في تنفيذ واجهة برمجة تطبيقات الويب للبيتزا، تحتاج إلى امتلاك مخزن بيانات يمكننك إجراء العمليات عليه.
تحتاج إلى model
فئة لتمثيل بيتزا في مخزونك. يحتوي النموذج على خصائص تمثل مواصفات البيتزا. يُستخدم النموذج لتمرير البيانات في واجهة برمجة تطبيقات الويب ولمواصلة خيارات البيتزا في مخزن البيانات.
في هذه الوحدة، يمثل مخزن البيانات هذا خدمة تخزين مؤقت محلية بسيطة في الذاكرة. في تطبيق العالم الحقيقي، يمكنك التفكير في استخدام قاعدة بيانات، مثل SQL Server، مع Entity Framework Core.
أنشئ نموذج بيتزا
شغَّل الأمر التالي لإنشاء مجلد نماذج:
mkdir Models
حدد مجلد Models في Visual Studio Code وأضِف ملف جديد يُسمى Pizza.cs.
يحتوي جذر المشروع الآن على Models دليل مع ملف فارغ Pizza.cs . اسم Models الدليل هو اصطلاح. اسم الدليل يأتي من تصميم وحدة التحكم في عرض النموذج الذي تستخدمه واجهة برمجة تطبيقات الويب.
أضف التعليمات البرمجية التالية إلى Models/Pizza.cs واحفظ التغييرات. تعرف هذه الفئة البيتزا.
namespace ContosoPizza.Models; public class Pizza { public int Id { get; set; } public string? Name { get; set; } public bool IsGlutenFree { get; set; } }
أضِف خدمة البيانات
بادر بتشغيل الأمر التالي لإنشاء مجلد Services:
mkdir Services
حدد المجلد في Visual Studio Code وأضِف ملف جديد يُسمى PizzaService.cs.
أضف التعليمات البرمجية التالية إلى Services/PizzaService.cs واحفظ التغييرات. تنشئ هذه التعليمة البرمجية خدمة بيانات بيتزا في الذاكرة.
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; } }
توفر هذه الخدمة خدمة تخزين مؤقت بسيطة للبيانات في الذاكرة مع نوعي بيتزا بشكل افتراضي. تستخدم واجهة برمجة تطبيقات الويب هذه الخدمة لأغراض العرض التوضيحي. عند إيقاف واجهة برمجة تطبيقات الويب وبدء تشغيلها، تتم إعادة تعيين ذاكرة التخزين المؤقت للبيانات في الذاكرة إلى نوعي البيتزا الافتراضيين من الدالة الإنشائية ل
PizzaService
.
إنشاء مشروع واجهة برمجة تطبيقات على الويب
قم بتشغيل الأمر التالي لإنشاء التطبيق:
dotnet build
ينجح الإنشاء من دون أي تحذيرات. إذا فشل البناء، فتَحقَّق من الإخراج للحصول على معلومات استكشاف الأخطاء وإصلاحها.
في الوحدة التالية، ستنشئ وحدة تحكم ستستخدم النموذج Pizza
والفئة PizzaService
.