10 KiB
10 KiB
مشخصات درسنامه: مفهوم API و ارتباط سرور با فرانتاند (APIs & HTTP Methods)
- شناسه در سیلابس:
L7.3 - فصل: فصل ۷: داده و بکاند (Ch 7)
- نوع محتوا: 📘 درسنامه متنی
- زمان تقریبی مطالعه: ۱۲ دقیقه
- پیشنیازهای مستقیم:
L7.2(داده و دیتابیس چیست)
۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy)
دانشجو پس از مطالعهٔ این درسنامه باید بتواند:
- درک کند (Understand): رابط برنامهنویسی نرمافزار (API) چیست و استعاره مشهور «گارسون رستوران» چگونه چرخه ارتباط میان مشتری (فرانتاند) و آشپزخانه (پایگاه داده) را توضیح میدهد.
- درک کند (Understand): چرخه درخواست و پاسخ (Request-Response Cycle) و ساختار دادههای مبادلاتی در قالب زبان جهانی JSON چگونه کار میکنند.
- تحلیل/ارزیابی کند (Evaluate): چهار متد اساسی پروتکل HTTP و تطبیق آنها با عملیات چهارگانه CRUD شامل: GET (خواندن)، POST (ایجاد)، PUT/PATCH (ویرایش)، و DELETE (حذف) را درک کند.
- تحلیل/ارزیابی کند (Evaluate): کدهای وضعیت استاندارد HTTP (کدهای ۲۰۰ موفق، ۴۰۱ عدم دسترسی، ۴۰۴ پیدا نشدن، و ۵۰۰ خطای سرور) را برای خطایابی ارتباطات نرمافزار تفسیر کند.
- درک کند (Understand): پلتفرمهای نوین BaaS (مانند Supabase) چگونه بدون نیاز به نوشتن دستی صدها خط کد سرور، به صورت خودکار برای هر جدول یک REST API امن تولید میکنند.
۲. محدوده و مرزهای محتوا (Scope & Boundaries)
آنچه باید پوشش داده شود (In-Scope):
- استعاره گارسون رستوران (The Restaurant Waiter Analogy):
- شما (کاربر/فرانتاند) پشت میز نشستهاید و منو را میبینید، اما اجازه ندارید خودتان وارد آشپزخانه (دیتابیس) شوید و قابلمهها را دستکاری کنید!
- گارسون (API): سفارش شما را به آشپزخانه میبرد، سرآشپز غذا را آماده میکند، و گارسون بشقاب آماده (پاسخ دادهها) را به میز شما بازمیگرداند.
- کالبدشکافی چرخه درخواست و پاسخ (Request & Response):
- درخواست (Request): شامل آدرس اینترنتی (Endpoint)، روش عمل (HTTP Method)، سربرگها (Headers شامل توکن ورود)، و بدنه دادهها (Body).
- پاسخ (Response): شامل کد وضعیت (Status Code) و بسته اطلاعات نهایی در قالب استاندارد JSON.
- متدهای چهارگانه HTTP در پروژه محوری (عملیات CRUD):
GET /api/projects: دریافت لیست تمام کارتهای پروژهها برای نمایش در ویترین عمومی (خواندن - Read).POST /api/projects: ارسال اطلاعات یک پروژه جدید توسط ادمین برای ذخیره در دیتابیس (ایجاد - Create).PATCH /api/projects/123: ویرایش عنوان یا عکس یک پروژه مشخص (بروزرسانی - Update).DELETE /api/projects/123: حذف دائمی یک پروژه از پایگاه داده (حذف - Delete).
- الفبای کدهای وضعیت (Status Codes): چراغ راهنمایی وب:
- خانواده ۲۰۰ (سبز - موفقیت):
200 OK(عملیات موفق)،201 Created(پروژه با موفقیت ساخته شد). - خانواده ۴۰۰ (زرد - خطای کلاینت):
400 Bad Request(ورودی نامعتبر)،401 Unauthorized(لاگین نکردهاید)،404 Not Found(یافت نشد). - خانواده ۵۰۰ (قرمز - خطای سرور):
500 Internal Server Error(کرش دیتابیس یا خطای باگ بکاند).
- خانواده ۲۰۰ (سبز - موفقیت):
- فرمت جهانی JSON: نمایش ساختار کلید-مقدار ساده در زبان تبادل دادهها.
- کالاوتهای Quera:
<details class="violet">: استعاره گارسون رستوران؛ امنترین روش حفظ پایگاه داده از دسترسی مستقیم مرورگرها.<details class="red">: کدهای وضعیت HTTP؛ نیمی از مهارت حل باگ در وایب کدینگ، نگاه کردن به کد عددی پاسخ سرور در تب Network مرورگر است.
آنچه نباید وارد آن شویم (Out-of-Scope):
- نوشتن سرور دستی با پایتون FastAPI یا Node.js Express (سوپابیس این کار را خودکار میکند).
- پروتکلهای GraphQL یا gRPC (پیچیدگی غیرضروری برای این دوره).
۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms)
| اصطلاح انگلیسی | معادل فارسی مصوب | توضیح یکخطی ساده |
|---|---|---|
| API (Application Programming Interface) | رابط برنامهنویسی کاربردی | پل و زبان مشترک ارتباطی که اجازه میدهد دو نرمافزار با یکدیگر تبادل داده کنند |
| REST API | رِست ایپیآی | معماری استاندارد و وبمحور برای تبادل دادهها با استفاده از متدهای پروتکل HTTP |
| HTTP Methods / Verbs | متدهای پروتکل وب | دستورات استاندارد مشخصکننده نوع عملیات روی دادهها (GET, POST, PUT, DELETE) |
| HTTP Status Code | کد وضعیت پاسخ وب | عدد سهرقمی استاندارد که موفقیت یا نوع خطای پاسخ سرور را نشان میدهد |
| JSON | نمادگذاری اشیاء جاوااسکریپت | سبکترین و پرکاربردترین فرمت متنی تبادل اطلاعات مبتنی بر جفتهای کلید و مقدار |
۴. جایگاههای تصاویر و نمودارها (Visual & Diagram Placeholders)
راهنمای ایجنت نویسنده: تمام تصاویر باید در پوشهٔ
images/قرار گرفته و در قالب جدول تکخانهای وسطچین با کپشن تفصیلی درج شوند:
- تصویر کاور درس:
images/cover.png- موضوع: کاور مدرن با تم تیره که دو جزیره دیجیتال فرانتاند و دیتابیس را متصل به یک پل نوری درخشان با نشانهای متدهای GET, POST, DELETE نشان میدهد.
- استعاره گارسون رستوران در عملکرد API:
images/api-restaurant-waiter-analogy.png- موضوع: تصویر شماتیک: مشتری روی صندلی (فرانتاند)
\rightarrowگارسون مودب (API)\rightarrowآشپزخانه محافظتشده (دیتابیس).
- موضوع: تصویر شماتیک: مشتری روی صندلی (فرانتاند)
- چرخه رفتوبرگشت درخواست و پاسخ:
images/request-response-cycle.png- موضوع: اینفوگرافیک دوسطره: سطر بالا ارسال Request با متد و بادی
\rightarrowسطر پایین دریافت Response با کد وضعیت ۲۰۰ و دیتای JSON.
- موضوع: اینفوگرافیک دوسطره: سطر بالا ارسال Request با متد و بادی
- ماتریس تطبیق متدها با عملیات CRUD:
images/crud-to-http-verbs.png- موضوع: جدول شماتیک ۴ ردیفه: ایجاد (Create = POST)، خواندن (Read = GET)، ویرایش (Update = PATCH)، حذف (Delete = DELETE).
- چراغ راهنمایی کدهای وضعیت HTTP:
images/http-status-codes-traffic-light.png- موضوع: تصویر جذاب ۳ چراغ: سبز (۲۰۰ و ۲۰۱)، زرد (۴۰۱ و ۴۰۴)، قرمز (۵۰۰) با توضیحات کوتاه کاربردی.
۵. بخشبندی و ساختار محتوایی پیشنهادی درسنامه (README.md)
- تیتر اصلی:
# مفهوم API و ارتباط سرور با فرانتاند: شاهراه مکالمه در وب - مقدمه: چرا فرانتاند هرگز نباید به طور مستقیم به پایگاه داده وصل شود؟
- جدول کاور درس
- استعاره گارسون رستوران: API دقیقاً چه کار میکند؟: منطق امنیت و واسطهگری.
- کالبدشکافی درخواست و پاسخ (Request & Response): اجزای یک مکالمه در اینترنت.
- چهار متد اصلی HTTP در دنیای واقعی:
- متد GET برای خواندن پروژهها.
- متد POST برای ایجاد پروژه جدید.
- متد PATCH برای ویرایش متادیتا و سئو.
- متد DELETE برای حذف.
- زبان مادری وب: فرمت دادههای JSON: ساختار ساده و کاربردی کلید-مقدار.
- باکس نکته Quera (
<details class="violet">): چرا Supabase نیاز به نوشتن دستی کدهای API را برای همیشه حذف کرد؟ - رمزگشایی از کدهای وضعیت HTTP (چراغ راهنمای خطاها): تفاوت خطای ۴۰۱ با ۴۰۴ و ۵۰۰.
- باکس هشدار Quera (
<details class="red">): تب Network در ابزار DevTools مرورگر؛ کلید کشف مشکلات ارتباطی فرانتاند با سرور. - جمعبندی درسنامه: تسلط بر مفاهیم ارتباطی و ورود به درس راهاندازی عملی پروژه در پلتفرم ابری Supabase.
۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)
- استعاره گارسون برای تفهیم نقش واسطهای و امنیتی API به زبان ساده بیان شده باشد.
- متدهای چهارگانه HTTP و تطبیق آنها با عملیات CRUD در سناریوی پروژه پورتفولیو توضیح داده شود.
- کدهای وضعیت اصلی به همراه تحلیل علت رخداد هرکدام آموزش داده شوند.
- فرمت JSON و ساختار تبادل پیام با کدهای نمونه مستند گردد.