ایجاد سرویس Web API REST
ایجاد سرویس Web API REST یکی از مهارتهای مهم در توسعه نرمافزارهای مدرن است. امروزه بسیاری از وبسایتها، اپلیکیشنهای موبایل و سامانههای سازمانی از API برای تبادل داده استفاده میکنند. اگر بخواهید بین چند سیستم ارتباط استاندارد ایجاد کنید، REST API یکی از بهترین گزینههاست. 🚀
در گذشته، آموزشهای زیادی بر پایه Visual Studio 2015 و ASP.NET Web API 2 نوشته میشدند. این روش هنوز قابل فهم است، اما برای پروژههای جدید بهتر است از ASP.NET Core و نسخههای جدید .NET استفاده شود. با این حال، مفاهیم اصلی REST، کنترلر، مدل، مسیرها و متدهای HTTP همچنان ثابت هستند.
در این مقاله، ایجاد سرویس Web API REST را بهصورت مرحلهبهمرحله بررسی میکنیم. همچنین ساختار پروژه، مزیتها، کاربردها، تست API و مراحل ثبتنام در یک سرویس API را توضیح میدهیم.
Web API REST چیست؟
Web API یک رابط برنامهنویسی تحت وب است. این رابط به نرمافزارها اجازه میدهد از طریق HTTP با هم ارتباط بگیرند. REST نیز یک سبک معماری برای طراحی API است.
در REST، هر منبع با یک آدرس مشخص شناسایی میشود. برای مثال، مسیر /api/employees میتواند مربوط به اطلاعات کارمندان باشد. عملیات مختلف نیز با متدهای HTTP انجام میشود.
متدهای اصلی در REST عبارتاند از:
- 🟢 GET: دریافت اطلاعات از سرور.
- 🔵 POST: ثبت داده جدید در سرور.
- 🟡 PUT: بهروزرسانی کامل یک داده.
- 🟠 PATCH: بهروزرسانی بخشی از داده.
- 🔴 DELETE: حذف یک داده مشخص.
این ساختار باعث میشود API خوانا، استاندارد و قابل توسعه باشد.
چرا ایجاد سرویس Web API REST مهم است؟
تقریباً هر محصول دیجیتال مدرن به API نیاز دارد. اپلیکیشن موبایل برای دریافت داده از سرور، به API متصل میشود. پنل مدیریت نیز میتواند از همان API استفاده کند.
REST API ارتباط بین فرانتاند و بکاند را سادهتر میکند. توسعهدهندگان میتوانند مستقل از زبان برنامهنویسی، با سرویس شما کار کنند. همین ویژگی باعث محبوبیت بالای REST شده است.
برای نمونه، یک برنامه React، یک اپلیکیشن Flutter و یک سرویس Python میتوانند از یک API مشترک استفاده کنند. این موضوع هزینه توسعه را کاهش میدهد.
مزیتهای Web API REST
ایجاد سرویس Web API REST مزیتهای زیادی برای تیمهای فنی دارد. این مزایا هم در پروژههای کوچک دیده میشوند، هم در سامانههای بزرگ.
- ⚡ سادگی در پیادهسازی: REST بر پایه HTTP کار میکند و یادگیری آن ساده است.
- 🌐 سازگاری بالا: تقریباً همه زبانها و پلتفرمها از REST پشتیبانی میکنند.
- 📦 خروجی استاندارد: دادهها معمولاً بهصورت JSON ارسال میشوند.
- 🔄 قابلیت توسعه: میتوانید مسیرها و منابع جدید اضافه کنید.
- 🔐 امکان امنیت بالا: میتوان از JWT، OAuth و HTTPS استفاده کرد.
- 📱 مناسب برای موبایل: اپلیکیشنها بهراحتی با REST API ارتباط میگیرند.
- 🧩 قابل استفاده در معماری میکروسرویس: سرویسها میتوانند مستقل کار کنند.
این مزایا باعث شدهاند REST همچنان یکی از محبوبترین روشهای طراحی API باشد.
کاربردهای Web API REST
کاربردهای Web API REST بسیار گسترده است. هرجا نیاز به تبادل داده باشد، API میتواند نقش کلیدی داشته باشد.
- 🛒 فروشگاه اینترنتی: مدیریت محصولات، سفارشها، پرداختها و کاربران.
- 🏦 سامانه مالی: دریافت تراکنشها، انتقال وجه و بررسی وضعیت حساب.
- 📲 اپلیکیشن موبایل: ارسال و دریافت داده بین اپ و سرور.
- 🧾 سیستم حسابداری: اتصال نرمافزار حسابداری به پنلهای دیگر.
- 🤖 اتوماسیون سازمانی: ارتباط بین CRM، ERP و سامانههای داخلی.
- 📊 داشبورد مدیریتی: نمایش گزارشهای زنده و دادههای تحلیلی.
- 🔌 اتصال به سرویسهای خارجی: استفاده از APIهای پیامک، پرداخت یا هوش مصنوعی.
اگر پروژه شما قرار است با سیستمهای دیگر ارتباط داشته باشد، REST API انتخابی منطقی است.
پیشنیازهای ساخت Web API
برای ایجاد سرویس Web API REST با ASP.NET، بهتر است چند پیشنیاز را داشته باشید. نیازی نیست در همه موارد متخصص باشید، اما آشنایی اولیه ضروری است.
- 🧠 آشنایی با C#: برای نوشتن مدلها و کنترلرها لازم است.
- 🧱 شناخت MVC یا Controller: ساختار کنترلرها در API مهم است.
- 🌍 درک HTTP: باید تفاوت GET، POST، PUT و DELETE را بدانید.
- 🛠️ نصب Visual Studio: نسخههای جدید مانند 2022 پیشنهاد میشوند.
- 🧪 ابزار تست API: Postman، Swagger یا REST Client کاربردی هستند.
برای پروژههای جدید، ASP.NET Core Web API پیشنهاد میشود. این نسخه سریعتر، سبکتر و مناسبتر برای توسعه مدرن است.
ساخت پروژه Web API
در نسخههای قدیمی، پروژه با Visual Studio 2015 و قالب ASP.NET Web Application ساخته میشد. سپس گزینه Web API انتخاب میشد. امروز بهتر است از ASP.NET Core Web API استفاده کنید.
مراحل کلی ساخت پروژه به شکل زیر است:
- 🧩 Visual Studio را باز کنید.
- 🧩 گزینه Create a new project را انتخاب کنید.
- 🧩 قالب ASP.NET Core Web API را جستوجو کنید.
- 🧩 نام پروژه را وارد کنید.
- 🧩 نسخه .NET را انتخاب کنید.
- 🧩 گزینه Enable OpenAPI یا Swagger را فعال کنید.
- 🧩 روی Create کلیک کنید.
با فعالکردن Swagger، میتوانید API را مستقیم در مرورگر تست کنید. این قابلیت برای توسعهدهندگان بسیار مفید است.
ساختار پروژه Web API
پس از ایجاد پروژه، چند بخش مهم در ساختار آن میبینید. شناخت این بخشها برای توسعه بهتر ضروری است.
پوشه Controllers
کنترلرها درخواستهای کاربر را دریافت میکنند. سپس پاسخ مناسب را برمیگردانند. در Web API، کنترلر معمولاً از ControllerBase ارثبری میکند.
پوشه Models
مدلها ساختار داده را مشخص میکنند. برای مثال، مدل کارمند میتواند شامل نام، شهر و شناسه باشد.
فایل Program.cs
در نسخههای جدید ASP.NET Core، تنظیمات اصلی در Program.cs قرار دارد. مسیرها، سرویسها و Swagger در این فایل پیکربندی میشوند.
ایجاد مدل کارمند
برای شروع، یک مدل ساده برای کارمند میسازیم. این مدل شامل شناسه، نام و شهر است.
namespace RestApiExample.Models
{
public class EmpModel
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public string City { get; set; } = string.Empty;
}
}
در این مدل، مقدار پیشفرض رشتهها خالی قرار داده شده است. این کار از خطاهای مربوط به مقدار null جلوگیری میکند.

ایجاد کنترلر API
اکنون باید یک کنترلر برای مدیریت کارمندان ایجاد کنیم. نام فایل را EmployeesController.cs قرار میدهیم.
using Microsoft.AspNetCore.Mvc;
using RestApiExample.Models;
namespace RestApiExample.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class EmployeesController : ControllerBase
{
private static readonly List<EmpModel> Employees = new()
{
new EmpModel { Id = 1, Name = "علی احمدی", City = "تهران" }
};
[HttpGet]
public IActionResult GetEmployees()
{
return Ok(Employees);
}
[HttpGet("{id}")]
public IActionResult GetEmployee(int id)
{
var employee = Employees.FirstOrDefault(e => e.Id == id);
if (employee == null)
return NotFound("کارمند مورد نظر یافت نشد.");
return Ok(employee);
}
[HttpPost]
public IActionResult AddEmployee(EmpModel model)
{
Employees.Add(model);
return Ok("اطلاعات کارمند ثبت شد.");
}
[HttpPut("{id}")]
public IActionResult UpdateEmployee(int id, EmpModel model)
{
var employee = Employees.FirstOrDefault(e => e.Id == id);
if (employee == null)
return NotFound("کارمند مورد نظر یافت نشد.");
employee.Name = model.Name;
employee.City = model.City;
return Ok("اطلاعات کارمند بهروزرسانی شد.");
}
[HttpDelete("{id}")]
public IActionResult DeleteEmployee(int id)
{
var employee = Employees.FirstOrDefault(e => e.Id == id);
if (employee == null)
return NotFound("کارمند مورد نظر یافت نشد.");
Employees.Remove(employee);
return Ok("اطلاعات کارمند حذف شد.");
}
}
}
این کنترلر عملیات اصلی CRUD را پوشش میدهد. یعنی میتوانید داده را ایجاد، مشاهده، ویرایش و حذف کنید.
مسیر API چگونه کار میکند؟
در کنترلر بالا، مسیر با این عبارت مشخص شده است:
[Route("api/[controller]")]
چون نام کنترلر EmployeesController است، مسیر نهایی این میشود:
/api/employees
اگر پروژه شما روی لوکال اجرا شود، آدرس کامل میتواند چنین باشد:
https://localhost:5001/api/employees
عدد پورت ممکن است در سیستم شما متفاوت باشد. این عدد را هنگام اجرای پروژه در مرورگر میبینید.
تست Web API REST
برای تست سرویس Web API REST چند روش رایج وجود دارد. سادهترین گزینه در ASP.NET Core، استفاده از Swagger است.
اگر Swagger فعال باشد، بعد از اجرای پروژه صفحهای مشابه این مسیر باز میشود:
https://localhost:5001/swagger
در Swagger میتوانید متدها را ببینید و اجرا کنید. برای مثال، متد GET لیست کارمندان را برمیگرداند. متد POST نیز یک کارمند جدید ثبت میکند.
ابزار Postman هم گزینهای حرفهایتر است. در Postman میتوانید Header، Body و Token را دقیقتر مدیریت کنید.
فرمت خروجی API
Web API معمولاً خروجی را بهصورت JSON برمیگرداند. JSON سبک، خوانا و مناسب برای وب است.
نمونه خروجی یک کارمند:
{
"id": 1,
"name": "علی احمدی",
"city": "تهران"
}
در نسخههای قدیمیتر، خروجی ممکن بود بر اساس Header به JSON یا XML تغییر کند. امروزه JSON استاندارد رایجتر است.
نکات مهم امنیتی
یک API بدون امنیت، میتواند خطرناک باشد. بهخصوص اگر دادههای واقعی کاربران را مدیریت کند.
برای امنتر شدن Web API، این نکات را رعایت کنید:
- 🔒 همیشه از HTTPS استفاده کنید.
- 🔑 برای کاربران، احراز هویت JWT فعال کنید.
- 🧱 دادههای ورودی را اعتبارسنجی کنید.
- 🛡️ دسترسیها را با Role مدیریت کنید.
- 🚦 برای درخواستها Rate Limit قرار دهید.
- 🧪 خطاهای داخلی را مستقیم نمایش ندهید.
این موارد در پروژههای واقعی بسیار مهم هستند. امنیت باید از ابتدای طراحی API در نظر گرفته شود.
مراحل ثبتنام در سرویس API
اگر قصد استفاده از سرویسهای API آماده را دارید، باید ابتدا ثبتنام کنید. این کار معمولاً چند دقیقه زمان میبرد. ✅
مراحل کلی ثبتنام به این شکل است:
- 📝 وارد آدرس
p.api.irشوید. - 📩 شماره موبایل یا ایمیل خود را وارد کنید.
- 🔐 کد تایید را ثبت کنید.
- 👤 اطلاعات حساب کاربری را تکمیل کنید.
- 🔑 کلید API یا توکن دسترسی را دریافت کنید.
- 🧪 درخواست آزمایشی خود را ارسال کنید.
پس از دریافت کلید API، میتوانید آن را در Header درخواستها قرار دهید. این روش برای شناسایی کاربر و کنترل مصرف استفاده میشود.
خطاهای رایج در ساخت REST API
در زمان ایجاد سرویس Web API REST ممکن است با چند خطای تکراری روبهرو شوید. شناخت این خطاها سرعت توسعه را افزایش میدهد.
- ❌ خطای 404: مسیر API اشتباه است یا کنترلر پیدا نمیشود.
- ❌ خطای 405: متد HTTP اشتباه انتخاب شده است.
- ❌ خطای 400: داده ورودی معتبر نیست.
- ❌ خطای 401: کاربر احراز هویت نشده است.
- ❌ خطای 500: خطای داخلی در کد سمت سرور رخ داده است.
برای رفع این خطاها، ابتدا مسیر، متد و Body درخواست را بررسی کنید. سپس لاگهای برنامه را بخوانید.
بهترین روشهای طراحی API
طراحی خوب API فقط به نوشتن کد محدود نیست. باید ساختار، نامگذاری و پاسخها هم استاندارد باشند.
- ✅ از نامهای جمع برای منابع استفاده کنید.
- ✅ مسیرها را ساده و قابل فهم بنویسید.
- ✅ از کدهای وضعیت HTTP درست استفاده کنید.
- ✅ پاسخ خطا را واضح و قابل پیگیری طراحی کنید.
- ✅ مستندات API را با Swagger ارائه دهید.
- ✅ نسخهبندی API را برای آینده در نظر بگیرید.
برای مثال، مسیر /api/employees بهتر از /api/getEmployeeList است. چون REST باید منبعمحور باشد.
ایجاد سرویس Web API REST یک مهارت ضروری برای توسعهدهندگان بکاند است. با ASP.NET Core میتوانید APIهای سریع، امن و قابل توسعه بسازید. در این مقاله، ساخت مدل، کنترلر، مسیرها و متدهای HTTP را بررسی کردیم.
همچنین دیدیم که REST API در فروشگاهها، اپلیکیشنها و سامانههای سازمانی کاربرد زیادی دارد. اگر قصد توسعه پروژهای حرفهای دارید، طراحی API را جدی بگیرید. 🌟
اگر این آموزش برای شما مفید بود، نظر خود را ثبت کنید. همچنین پیشنهاد میکنیم مقاله «تست API با Postman» را هم مطالعه کنید.
