.NET API - هيكل المشروع: Controllers وModels وProgram.cs

1.3 ‎.NET API - هيكل المشروع: Controllers وModels وProgram.cs

في مشاريع ‎ASP.NET Core Web API، يتكوّن المشروع من ملفات أساسية تنظم سير العمل بين الطلبات والاستجابات. دعنا نلقي نظرة على أهم هذه الملفات:

📁 1. Controllers

Controllers هي المسؤولة عن استقبال الطلبات من المستخدمين والتفاعل معها.

أي Controller يرث من ControllerBase، ويحتوي على Actions (مثل: Get, Post) تعالج الطلب وترجع استجابة (عادة JSON).

using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
    [HttpGet]
    public IActionResult GetAll()
    {
        return Ok(new[] { "Laptop", "Mouse", "Keyboard" });
    }
}

ملاحظة: [ApiController] تسهل التحقق من البيانات وتنسيق الردود تلقائيًا.

📁 2. Models

Models هي الطبقة التي تمثل الكائنات أو البيانات المستخدمة داخل التطبيق. غالبًا ما تُستخدم لتمثيل كائنات قاعدة البيانات أو البيانات القادمة من الطلب.

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

يمكنك استخدام Models في:

  • ✅ تخزين البيانات
  • ✅ استقبال البيانات من الـClient
  • ✅ إرسال البيانات إلى واجهات أخرى

⚙️ 3. Program.cs (أو Startup.cs)

في الإصدارات الحديثة من .NET، يستخدم المشروع Program.cs فقط لتهيئة الخدمات (Dependency Injection) ومسار التطبيق.

var builder = WebApplication.CreateBuilder(args);

// تسجيل الخدمات
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

// إعداد البايبلاين
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseAuthorization();
app.MapControllers();

app.Run();

ملحوظة: السطر app.MapControllers(); هو ما يجعل الـ API تعمل فعليًا، فلا تنسَ إضافته.

📌 خلاصة

  • Controllers: تستقبل وتعالج الطلبات.
  • Models: تمثل البيانات المستخدمة داخل النظام.
  • Program.cs: يحتوي على إعدادات المشروع وتهيئة الخدمات.

تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework