آموزش FastAPI

FastAPI یک چارچوب (framework) سریع و مدرن برای توسعه وب اپلیکیشن های سروری با استفاده از پایتون است. این چارچوب بر پایه استانداردهای مدرن وب مانند ASGI (Asynchronous Server Gateway Interface) ساخته شده است و از قابلیت های پیشرفته ای برای توسعه و مدیریت سرویس های وب پایتونی برخوردار است.

ویژگی های کلیدی FastAPI عبارتند از:

  • عملکرد سریع: FastAPI بر پایه پایتونی بسیار سریع به نام Starlette ساخته شده است و از قابلیت های بهره وری بالا و اجرای ناهمزمان (asynchronous) استفاده می کند که عملکرد بسیار سریعی را در اجرای درخواست ها فراهم می کند.

  • تایپ های استاتیک: FastAPI از تایپ های استاتیک پایتون (Static Typing) با استفاده از ویژگی های جدید زبان پایتون 3.6 بهره می برد. این قابلیت باعث می شود که بتوانید از قابلیت های IDE مانند پیشنهادهای خودکار و اعتبارسنجی کد استفاده کنید و از خطاهای نوع دهی جلوگیری شود.

  • پیشرفته ترین مستندسازی: FastAPI از استاندارد OpenAPI (با سابقه ی Swagger) برای تولید خودکار مستندات استفاده می کند. این به شما امکان می دهد تا به راحتی مستندات مربوط به API خود را تولید و مشتریان خود را با راهنمایی هایی برای استفاده از سرویس هایتان پشتیبانی کنید.

  • تناسب با استانداردها: FastAPI با استفاده از استانداردها و قراردادهای مدرن وب مانند RESTful و HTTP طراحی شده است. این باعث می شود تا با سایر ابزارها و سرویس ها بازیابی و تعامل کند و به سادگی با توسعه دهندگان و تیم های دیگر سازگاری داشته باشد.

  • اعتبارسنجی و سریال سازی خودکار: FastAPI از Pydantic برای اعتبارسنجی و سریال سازی خودکار داده ها استفاده می کند. این به شما امکان می دهد که داده های ورودی را اعتبارسنجی کرده و خطاهای مربوطه را به صورت خودکار و قابل فهم برگردانید.

  • پشتیبانی از WebSocket: FastAPI از WebSocket را به صورت از پیش یکپارچه پشتیبانی می کند. این به شما امکان می دهد برنامه هایی که نیاز به ارتباط دوطرفه و برقراری اتصال دائم با سرور دارند، مانند برنامه های چت آنلاین و برنامه های بر اساس رویداد (event-based)، را فراهم کنید.

ویژگی های دیگر FastAPI شامل:

  • واحدهای مستقل: FastAPI توانایی تقسیم برنامه به واحدهای مستقل را دارد، به طوری که هر واحد می تواند از مسیریابی خود استفاده کند و به صورت مستقل قابل تست و استقرار باشد.

  • میان افزارهای (Middleware) سفارشی: FastAPI به شما امکان می دهد میان افزارهای سفارشی را به راحتی به برنامه خود اضافه کنید. این میان افزارها قابلیت هایی مانند احراز هویت، ثبت وقایع (logging) و فشرده سازی را به برنامه اضافه می کنند.

  • وابستگی های تزریقی: FastAPI از Dependency Injection (تزریق وابستگی ها) بهره می برد که به شما امکان می دهد وابستگی های لازم برای اجرای یک مسیر را به صورت خودکار دریافت کنید. این ویژگی راه حلی مناسب برای مدیریت وابستگی ها و تست واحدهایی است که به داده هایی از منابع خارجی نیاز دارند.

  • امنیت: FastAPI قابلیت هایی مانند رمزنگاری و تأیید هویت (authentication) را به صورت پیش فرض ارائه می دهد. همچنین، شما می توانید از ابزارها و کتابخانه های امنیتی دیگری مانند OAuth2 برای تأمین امنیت برنامه خود استفاده کنید.

این توضیحات برخی از ویژگی های کلیدی FastAPI را شامل می شود، اما این فریمورک دارای مزایا و ویژگی های بیشتری است که برنامه نویسان را در توسعه وب اپلیکیشن های پیشرفته با پایتون یاری می دهد.

آشنایی با دوره
پیشنیازهای دوره
چه چیز هایی یاد خواهید گرفت
fast api چیست
ورژن های FastAPI و ماژول ها
تفاوت های بین Flaskو Django و FastAPI
ایجاد ساختار پروژه و environment
ساخت اولین route و اجرای پروژه
بررسی عملکرد app و انواع درخواست ها
درخواست List اطلاعات و بررسی Rest Design
درخواست جزئیات یک آیتم با GET و Path Parameter
درخواست ساخت با استفاده از POST و فرم مربوطه
ویرایش با استفاده از PUT یا PATCH
حذف یک آیتم با استفاده از DELETE
استفاده از query parameter در فیلتر کردن لیست
نمایش خطا های متناسب Exception و Status code
ایجاد پاسخ های مناسب با JsonResponse
اعتبار سنجی در query parameter
اعتبارسنجی path parameters
استفاده از Form در ارسال اطلاعات
استفاده از Body در ارسال اطلاعات
نحوه آپلود فایل با File و UploadFile
بررسی event ها و Lifespan
آشنایی با dataclass و pydantic و دلیل وجود
دلایل اهمیت pydantic
شروع کار با pydantic و request body
اعتبارسنجی یا validation در pydantic
serialization و deserializer در pydantic
انواع Field ها و خاصیت های مختلف در pydantic
آشنایی با sqlalchemy و orm
نحوه اتصال به دیتابیس sqlite و کار با sqlalchemy
ایجاد مدل و جداول با استفاده از Base
انواع فیلد های جدول در Sqlalchemy
انجام عملیات های CRUD در SqlAlchemy
اعمال فیلتر های بیشتر و پیچیده تر در query
برقراری ارتباط 1 به چند یا one to many
برقراری ارتباط یک به یک یا one-to-one
self refrencing در ارتباطات جداول
ایجاد ارتباط چند به چند یا many-to-many
برقراری ارتباط با دیتابیس از FastAPI
نصب و راه اندازی alembic
ایجاد migration ها و مدیریت
نحوه مدیریت environment ها
بررسی استاندارد layout ها
ایجاد layout پروژه
ایجاد route ها و metadata
ایجاد ساختار model
ایجاد schema با استفاده از pydantic
ایجاد عملیات CRUD
اضافه کردن فیلتر های پیچیده تر به tasks list
ایجاد مدل User
ایجاد آدرس های مورد نیاز برای احراز هویت
انواع احراز هویت کاربران در fastapi
نحوه پیاده سازی basic authentication
پیاده سازی Api Key authentication و Query Authentication
نحوه پیاده سازی Token Authentication
احراز هویت با JWT و ایجاد access_token
احراز هویت با JWT و گرفتن کاربر احراز شده
احراز هویت با JWT و مدیریت refresh token
مدیریت cookie و احراز هویت
اضافه کردن احراز به route ها
نحوه پیاده سازی Authorization
استفاده از modheader برای ارسال درخواست
آشنایی با postman و httppie و thunderclient و ارسال درخواست
ایجاد داده های تصادفی در دیتابیس
آشنایی با middleware
کار با cors middleware
فشرده‌سازی پاسخ‌ها با GZipMiddleware
آشنایی با قواعد طراحی API Dessign Guideline
Cleancode و آشنایی با pep8 و flake8
کار با black و Reformat
آشنایی با تست و انواع تست
آشنایی با pytest
نحوه تست نویسی با pytest
ایجاد تنظیمات دیتابیس برای تست
کار با fixture ها و تنظیمات اولیه
ساخت داده تست با استفاده از fixture
حل مشکل 403 به جای 401 در fastapi
ساخت کاربر احراز شده برای تست
Custom exception handler
کار با background tasks در fastapi
نحوه انجام کار های زمان بند با aspcheduler
کش کردن و استفاده از memory
معرفی داکر و جایگاه استفاده
ایجاد داکر فایل برای محیط توسعه
ایجاد docker-compose و مدیریت سرویس ها
اتصال دیتابیس پروژه به postgresql
حل مشکل migration ها در alembic در postgres
تست عملکرد اپلیکیشن و بازرسی داده با pgadmin
اتصال بک اند کش به Redis
اتصال apscheduler به redis
ارسال ایمیل در Fastapi و تست با smtp4dev
آشنایی با loadtest و locust
نحوه تنظیم locust و آماده سازی تست
ساخت task ها برای تست
نحوه درخواست با کاربر احراز هویت شده
آشنایی با celery و آماده سازی
ایجاد task و ساختار worker
ایجاد beat و انجام اعمال زمان بند
مانیتورینگ عملکرد با flower
آشنایی با پلتفرم هم روش
پیکربندی postgres و redis
پیکربندی اپلیکشن FastAPI
انجام تغییرات alembic و ساخت readiness
مانیتورینگ خطا با sentry
آشنایی با CICD
اضافه کردن یک workflow تست برای Pytest
نحوه تست عملکرد با استفاده از pull request
آشنایی با CD در پلتفرم های مختلف
پیاده سازی CD در پلتفرم همروش
بهبود عملکرد در dockerfile
توضیحات نهایی و roadmap
instructor-image

علی بیگدلی

توسعه دهنده backend (AI,IOT,Python)

بیشتر از 8 سال سابقه فعالیت در زمینه برنامه نویسی و تدریس

امتیازات شرکت کنندگان

5.0

(بر اساس بررسی کلی)

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد

دیدگاه کاربران (3)


avatar
کاربر جدید 2562
11 , فروردین , 1404 - 15:40 بعد از ظهر

سلام استاد دوره عالیه اگر امکانش هست یه گروه تلگرامی برای دوره داشته باشیم !
تا بتونیم دانشمون را با هم به اشتراک بزاریم

avatar
علی بیگدلی
11 , فروردین , 1404 - 16:12 بعد از ظهر

سلامت باشید، من مهندس هستم نه استاد.
و کانال و گروه برای سایت ایجاد شده و به زودی راه اندازی میشه 🙏

avatar
علی محمدی نژاد
11 , اسفند , 1403 - 20:52 بعد از ظهر

یه دوره فوق‌العاده مثل همیشه از جناب مهندس بیگدلی عزیز، دستتون درد نکنه که برای پیشرفت جامعه توسعه‌دهندگان تلاش میکنید

avatar
علی بیگدلی
11 , اسفند , 1403 - 21:44 بعد از ظهر

سلامت باشید امیدوارم که مفید واقع بشه 🙏🌷

avatar
کاربر جدید 205
11 , اسفند , 1403 - 13:30 بعد از ظهر

یه دوره فوق العاده بازم از آقای مهندس بیگدلی عزیز
خیلی عالیه آقای بیگدلی ممنونم از شما.

avatar
علی بیگدلی
11 , اسفند , 1403 - 13:33 بعد از ظهر

سلامت باشی مهندس نظر لطفته 🙏❤️

مشخصات دوره

  • تعداد دروس 112
  • مدت زمان دوره 16 ساعت
  • سطح دوره متوسط
  • تاریخ نشر 1403/12/09
  • تعداد دانشجو 48
  • دسته بندی python
  • بازدید 1137
  • قیمت
    1600000 1120000

دوره های من در مکتبخونه

آموزش جنگو پیشرفته
  • سطح: پیشرفته 4.7
آموزش جنگو Django
  • سطح: مقدماتی 4.6

آخرین پست ها

انتقال پروژه Django از پلتفرم Liara به پلتفرم Hamravesh
انتقال پروژه Django از پلتفرم Liara به پلتفرم Hamravesh
  • django 1403/05/28
پیاده سازی پروژه Django Channels (ASGI/Websocket) بر روی پلتفرم Hamravesh
پیاده سازی پروژه Django Channels (ASGI/Websocket) بر روی پلتفرم Hamravesh
  • django 1403/05/19
پیاده سازی پروژه django بر روی پلتفرم Caprover به همراه Media
پیاده سازی پروژه django بر روی پلتفرم Caprover به همراه Media
  • django 1403/05/15

آخرین دوره ها