یک آموزش عملی که شما را از هیچ، به یک REST API فعال میرساند. هیچ تجربه قبلی در زمینه API نیاز نیست.
در پایان این آموزش، شما یک REST API عملی با چندین اندپوینت خواهید داشت. با متدهای HTTP (GET، POST، PUT، DELETE) آشنا میشوید و یاد میگیرید چگونه API خود را تست کنید. همچنین خواهید دید چرا تیمها در محیطهای عملیاتی اغلب تولید خودکار API را به کدنویسی دستی ترجیح میدهند.
پیشنیازها:
نصب Node.js (نسخه ۱۸ یا بالاتر)، یک ویرایشگر کد، و آشنایی پایه با ترمینال.
بخش اول: درک APIها
یک API (رابط برنامهنویسی کاربردی) روشی است که اجزای نرمافزاری از طریق آن با یکدیگر ارتباط برقرار میکنند.
REST APIها از HTTP استفاده میکنند، همان پروتکلی که مرورگر شما استفاده میکند، تا به برنامهها اجازه دهند داده درخواست کنند یا ارسال کنند.
| متد HTTP | هدف | مثال |
|---|---|---|
| GET | دریافت داده | دریافت لیست کاربران |
| POST | ایجاد داده جدید | ایجاد کاربر جدید |
| PUT / PATCH | بهروزرسانی داده موجود | بهروزرسانی ایمیل کاربر |
| DELETE | حذف داده | حذف یک کاربر |
بخش دوم: ساخت اولین API
مرحله ۱: ایجاد پروژه
ترمینال را باز کنید و دستورات زیر را اجرا کنید:
مرحله ۲: نوشتن سرور
یک فایل به نام server.js ایجاد کنید. با تنظیمات اولیه و دادههای ابتدایی شروع میکنیم:
افزودن اندپوینتهای GET برای دریافت کاربران
افزودن POST برای ایجاد کاربر و PUT برای بهروزرسانی
افزودن DELETE و راهاندازی سرور
مرحله ۳: اجرا
باید این پیام را ببینید:
بخش سوم: تست API
دریافت همه کاربران
ایجاد کاربر جدید
بهروزرسانی کاربر
حذف کاربر
تبریک. اکنون یک REST API فعال با عملیات کامل CRUD دارید:
GET برای لیست، GET با شناسه، POST برای ایجاد، PUT برای ویرایش، و DELETE برای حذف.
بررسی واقعیت
آنچه ساختیم کار میکند، اما آماده استفاده در محیط عملیاتی نیست. مواردی که وجود ندارند:
-
ماندگاری دادهها در پایگاه داده
-
احراز هویت
-
اعتبارسنجی ورودیها
-
محدودسازی نرخ درخواستها
-
مستندات API
ساخت همه این موارد برای یک API واقعی، هفتهها زمان میبرد، نه چند دقیقه.
مسیر سریعتر: APIهای تولیدشده بهصورت خودکار
در بسیاری از پروژهها، بهجای پیادهسازی دستی تمام این اجزا، از ابزارهایی استفاده میشود که با اتصال به پایگاه داده موجود، یک REST API کامل را بهصورت خودکار تولید میکنند.
نمونهای از اندپوینتهایی که چنین ابزارهایی برای هر جدول پایگاه داده تولید میکنند:
این فقط شروع کار است. امکانات پیشرفتهتری نیز بدون نوشتن حتی یک خط کد ارائه میشود:
و همچنین:
چرا تیمها به سمت تولید خودکار API میروند
-
اتصال مستقیم به پایگاه دادههای مختلف بدون مهاجرت
-
امنیت سازمانی از پیش پیادهسازیشده
-
احراز هویت، کنترل دسترسی و محدودسازی نرخ درخواست
-
مستندات OpenAPI تولیدشده بهصورت خودکار
-
امکان افزودن منطق تجاری سفارشی در سمت سرور
-
قابلیت استقرار روی زیرساخت شخصی یا کانتینری
چه چیزهایی را با این رویکرد رد میکنید
| بخش مفقود | پیادهسازی دستی | تولید خودکار |
|---|---|---|
| پایگاه داده | ORM و کوئرینویسی | اتصال مستقیم |
| احراز هویت | پیادهسازی JWT | آماده |
| اعتبارسنجی | نوشتن Validator | مبتنی بر اسکیما |
| Rate Limit | Middleware | داخلی |
| مستندات | نگهداری دستی | خودکار |
چه زمانی از هر رویکرد استفاده کنیم
| سناریو | رویکرد |
|---|---|
| یادگیری API | پیادهسازی دستی |
| منطق تجاری خاص | کدنویسی اختصاصی |
| CRUD استاندارد | تولید خودکار |
| ابزارهای داخلی | تولید خودکار |
| نمونهسازی سریع | تولید خودکار |
سؤالات متداول
آیا API را دستی بسازیم یا خودکار؟
هر دو جایگاه خود را دارند. برای یادگیری و منطق خاص، دستی بسازید. برای سرعت و عملیات استاندارد، تولید خودکار انتخاب بهتری است.
چگونه API را ایمن کنیم؟
استفاده از HTTPS، احراز هویت، مجوزدهی، اعتبارسنجی ورودیها و محدودسازی نرخ درخواستها حداقل الزامات هستند.
تفاوت REST و GraphQL چیست؟
REST از چندین اندپوینت استفاده میکند، در حالی که GraphQL یک اندپوینت واحد دارد. REST سادهتر است و در بسیاری از پروژهها انتخاب مناسبتری محسوب میشود.
مرجع سریع: کدهای وضعیت HTTP
| کد | معنی | کاربرد |
|---|---|---|
| ۲۰۰ | موفق | GET یا PUT موفق |
| ۲۰۱ | ایجاد شد | POST موفق |
| ۲۰۴ | بدون محتوا | DELETE موفق |
| ۴۰۰ | درخواست نامعتبر | ورودی نادرست |
| ۴۰۱ | عدم احراز هویت | دسترسی غیرمجاز |
| ۴۰۴ | یافت نشد | منبع وجود ندارد |
| ۵۰۰ | خطای سرور | خطای داخلی |
جمعبندی
در حدود ۱۰ دقیقه، یک REST API عملی ساختید. با متدهای HTTP، پاسخهای JSON و عملیات CRUD آشنا شدید. این دانش پایهای ارزشمند است.
اما واقعیت این است که اکثر APIهای عملیاتی نیازهای مشترکی دارند. ساخت دستی این موارد در هر پروژه، شما را کندتر میکند، نه حرفهایتر.
توسعهدهندگان حرفهای میدانند چه زمانی کدنویسی کنند و چه زمانی از ابزارها استفاده کنند. یادگیری و منطق خاص را دستی بسازید؛ برای APIهای استاندارد پایگاه داده، از تولید خودکار استفاده کنید و تمرکزتان را روی ارزش واقعی محصول بگذارید.
