Web API در ASP.NET Core چیست؟
ساخت سرویسهای HTTP که داده (معمولاً JSON) برمیگردانند، نه HTML — پایه ارتباط بین فرانتاند/موبایل و Backend در معماریهای مدرن.
چرا مهم است؟
امروز اکثر برنامهها (وب SPA، موبایل، سرویسبهسرویس) از طریق Web API با هم صحبت میکنند؛ طراحی درست آن (Route، Status Code، DTO) مستقیماً روی کیفیت ارتباط تمام کلاینتها اثر میگذارد.
تعریف
Web API مجموعهای از Endpointهای HTTP است که با فرمتهایی مثل JSON داده رد و بدل میکنند؛ در ASP.NET Core هم با Controller ([ApiController]) و هم با Minimal API قابل پیادهسازی است.
مثال (Controller-based)
[ApiController]
[Route("api/[controller]")]
public class OrdersController : ControllerBase
{
[HttpGet("{id}")]
public async Task<ActionResult<OrderDto>> GetById(int id)
{
var order = await _service.GetByIdAsync(id);
return order is null ? NotFound() : Ok(order);
}
}
اصول طراحی خوب
- Status Code معنادار:
200موفق،201ایجاد شد،400ورودی نامعتبر،404یافت نشد،401/403احراز هویت/دسترسی. - DTO بهجای Entity: هیچوقت مستقیم Entity دیتابیس را Serialize نکنید؛ فیلدهای داخلی (مثل Hash رمز) ممکن است افشا شوند.
- نامگذاری منبعمحور:
GET /orders/5نهGET /getOrderById?id=5.
اشتباه رایج
❌ برگرداندن 200 OK برای همه حالتها، حتی خطا، با یک فیلد { success: false } داخل بدنه — این کار استانداردهای HTTP و ابزارهای Client خودکار (مثل Retry بر اساس Status Code) را بیاثر میکند.
منبع و مطالعه بیشتر
خلاصه
Web API با فرمت JSON و Status Codeهای معنادار بین Backend و کلاینتها ارتباط برقرار میکند. همیشه DTO برگردانید نه Entity خام، و از Status Code واقعی HTTP استفاده کنید نه فقط 200 با فلگ داخلی. مرجع کامل: مستندات Web API، Microsoft Learn.
