آموزش تسلط بر REST API با FastAPI - آخرین آپدیت

دانلود Mastering REST APIs with FastAPI

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

آموزش ساخت API حرفه‌ای با FastAPI

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

آنچه در این دوره می‌آموزید:

  • ساخت APIهای حرفه‌ای با استفاده از FastAPI
  • کسب تجربه گسترده با FastAPI
  • نحوه تست برنامه‌های FastAPI با استفاده از Pytest با پوشش تست 100%
  • تسلط بر لاگ‌گیری با ماژول لاگ‌گیری داخلی
  • افزودن احراز هویت کاربر با هش کردن رمز عبور و توکن‌های Bearer
  • استفاده از پایگاه داده SQL ناهمزمان و مدل‌سازی روابط یک به چند و چند به چند
  • ارسال ایمیل به کاربران هنگام ثبت‌نام بدون افت عملکرد با استفاده از وظایف پس‌زمینه
  • مدیریت آپلود فایل و ذخیره آن‌ها در یک سرویس شخص ثالث
  • استقرار برنامه‌های FastAPI خود در ابر

پیش‌نیازها:

داشتن تجربه برنامه‌نویسی قبلی در هر زبان برنامه‌نویسی.

تمام نرم‌افزارهای مورد استفاده در دوره ارائه شده و کاملاً رایگان هستند.

مبتدیان کامل ممکن است ابتدا بخواهند یک دوره پایتون مبتدی را بگذرانند و سپس به این دوره منتقل شوند.

پروژه دوره:

ما یک API رسانه اجتماعی با احراز هویت کاربر، ارسال ایمیل و آپلود فایل خواهیم ساخت. کاربران می‌توانند با استفاده از توکن‌های Bearer (JWT) ثبت‌نام و وارد شوند. آن‌ها می‌توانند پست ایجاد کنند، نظرات بگذارند و پست‌های موجود را لایک کنند.

ما از Pydantic برای اعتبارسنجی داده‌ها و encode/databases به عنوان کتابخانه اتصال به پایگاه داده خود استفاده خواهیم کرد.

دانش پیشرفته:

از وظایف پس‌زمینه در FastAPI برای بهبود عملکرد هنگام اجرای کد کند، مانند هنگام ارسال ایمیل (که در دوره پوشش داده می‌شود) یا هنگام درخواست‌های کند به APIهای شخص ثالث (که همچنین پوشش داده می‌شود)، استفاده کنید.

در طول دوره، ما از یک کتابخانه پایگاه داده ناهمزمان استفاده می‌کنیم، دوباره برای به حداکثر رساندن عملکرد، که با این وجود استفاده از آن آسان است. شما در مورد انواع مختلف روابط داده‌ها و نحوه مدل‌سازی آن‌ها، از جمله روابط چند به چند، یاد خواهید گرفت.

شما یاد خواهید گرفت که چگونه آپلود فایل را مدیریت کنید و با فایل‌های آپلود شده چه کاری انجام دهید تا فضای سرور شما تمام نشود.

تست کامل API:

در نهایت، 100٪ کد در این دوره دارای تست است. شما از pytest به طور گسترده برای نوشتن تست‌های یکپارچه‌سازی و واحد برای API استفاده خواهید کرد. شما در مورد فیکسچرهای pytest، پارامترسازی و قراردادهای تست یاد خواهید گرفت.

بخشی از توسعه در دنیای واقعی به معنای لاگ‌گیری است! دانش لاگ‌گیری زیادی در این دوره وجود دارد، از جمله نحوه راه‌اندازی صحیح ماژول لاگ‌گیری، زمان برقراری تماس‌های لاگ‌گیری و محل ذخیره لاگ‌ها هنگام استقرار برنامه شما.

استقرار (Deployments):

البته، من به شما نشان خواهم داد که چگونه برنامه FastAPI خود را با استفاده از سرویس محبوب Render مستقر کنید. شما می‌توانید برنامه FastAPI خود را به صورت رایگان مستقر کنید، اما من همچنین برخی از گزینه‌های پولی را برای بهبود عملکرد به شما نشان خواهم داد.

ما همچنین به مدیریت برنامه، رسیدگی به خطا با Sentry و CI/CD با GitHub Actions نگاه خواهیم کرد.

اگر از FastAPI استفاده می‌کنید یا می‌خواهید استفاده کنید، این دوره شامل هر چیزی است که برای توسعه APIهای کامل و دنیای واقعی نیاز دارید.

بیایید شروع کنیم. شما را در داخل می‌بینم!


سرفصل ها و درس ها

معرفی دوره Course Introduction

  • انجمن Community

  • دستورالعمل‌ها - عضویت در انجمن Instructions - Join the Community

  • به این دوره خوش آمدید! Welcome to this course!

  • ویژگی‌های پلتفرم و یادداشت‌برداری Platform features and note-taking

  • تو می‌تونی انجامش بدی! You can do it!

  • API چیست؟ What is an API?

  • REST چیست؟ What is REST?

بازآموزی کامل پایتون (اختیاری) Complete Python Refresher (optional)

  • متغیرها در پایتون Variables in Python

  • فرمت‌بندی رشته در پایتون String formatting in Python

  • دریافت ورودی کاربر Getting user input

  • لیست‌ها، تاپل‌ها و مجموعه‌ها Lists, tuples, and sets

  • عملیات پیشرفته مجموعه Advanced set operations

  • مقادیر بولی در پایتون Booleans in Python

  • دستورات شرطی If If statements

  • کلمه کلیدی 'in' در پایتون The 'in' keyword in Python

  • دستورات شرطی If با کلمه کلیدی 'in' If statements with the 'in' keyword

  • حلقه‌ها در پایتون Loops in Python

  • لیست‌های فشرده در پایتون List comprehensions in Python

  • دیکشنری‌ها Dictionaries

  • تجزیه متغیرها Destructuring variables

  • توابع در پایتون Functions in Python

  • آرگومان‌ها و پارامترهای تابع Function arguments and parameters

  • مقادیر پیش‌فرض پارامتر Default parameter values

  • توابعی که مقادیر را برمی‌گردانند Functions returning values

  • توابع لامبدا در پایتون Lambda functions in Python

  • فشرده‌سازی دیکشنری Dictionary comprehensions

  • باز کردن آرگومان‌ها Unpacking arguments

  • باز کردن آرگومان‌های کلمه کلیدی Unpacking keyword arguments

  • برنامه‌نویسی شیءگرا در پایتون Object-Oriented Programming in Python

  • متدهای جادویی: __str__ و __repr__ Magic methods: __str__ and __repr__

  • @classmethod و @staticmethod @classmethod and @staticmethod

  • وراثت کلاس Class inheritance

  • ترکیب کلاس Class composition

  • اعلان نوع در پایتون Type hinting in Python

  • وارد کردن در پایتون Imports in Python

  • واردات نسبی در پایتون Relative imports in Python

  • خطاها در پایتون Errors in Python

  • کلاس‌های خطای سفارشی Custom error classes

  • توابع درجه یک در پایتون First class functions in Python

  • دکوراتورهای ساده در پایتون Simple decorators in Python

  • نحو 'at' برای دکوراتورها The 'at' syntax for decorators

  • تزئین توابع با پارامترها Decorating functions with parameters

  • دکوراتورها با پارامترها Decorators with parameters

  • تغییرپذیری در پایتون Mutability in Python

  • پارامترهای پیش‌فرض قابل تغییر (و چرا ایده بدی هستند) Mutable default parameters (and why they're a bad idea)

کار با FastAPI Working with FastAPI

  • معرفی این بخش Introduction to this section

  • اولین برنامه FastAPI شما Your First FastAPI App

  • راه‌اندازی اولیه برنامه Initial App Setup

  • لینت کردن، فرمت‌بندی و مرتب‌سازی واردات Linting, formatting and sorting imports

  • API رسانه اجتماعی ما: اضافه کردن پست‌ها Our social media API: adding posts

  • تقسیم API ما به فایل‌ها با APIRouter Splitting our API into files with APIRouter

  • اضافه کردن نظرات به API رسانه اجتماعی Adding comments to the social medical API

معرفی pytest Introduction to pytest

  • معرفی بخش pytest Introduction to the pytest section

  • مبانی pytest The basics of pytest

  • شروع کار با تست‌های FastAPI Getting started with FastAPI tests

  • ایجاد پست‌ها در تست‌های ما Creating posts in our tests

  • اضافه کردن تست برای پست‌ها Adding tests for posts

  • اضافه کردن تست‌های نظرات Adding comments tests

کار با پایگاه‌های داده ناهمزمان Working with async databases

  • معرفی کار با پایگاه‌های داده Introduction to working with databases

  • نصب نیازمندی‌ها برای پایگاه‌های داده ناهمزمان در FastAPI Installing requirements for async databases in FastAPI

  • ایجاد یک فایل پیکربندی با استفاده از Pydantic Creating a config file using Pydantic

  • پیکربندی‌های مختلف برای هر محیط در FastAPI Different configurations per environment in FastAPI

  • ذخیره‌سازی پیکربندی و نحوه دریافت شی پیکربندی Config caching and how to get the config object

  • راه‌اندازی پایگاه داده ناهمزمان با FastAPI Async database setup with FastAPI

  • اتصال به پایگاه داده با رویدادهای طول عمر در FastAPI Database connection with lifespan events in FastAPI

  • اجرای تست FastAPI خود در حالت 'test' Run your FastAPI test in 'test' mode

  • استفاده از پایگاه داده در روتر FastAPI ما Using a database in our FastAPI router

ثبت وقایع در برنامه‌های FastAPI Logging in FastAPI applications

  • معرفی ثبت وقایع Introduction to logging

  • ثبت وقایع پایتون: ثبت‌کننده‌ها، کنترل‌کننده‌ها و فرمت‌کننده‌ها Python logging: loggers, handlers, and formatters

  • سلسله مراتب ثبت‌کننده و __name__ Logger hierarchies and __name__

  • اضافه کردن پیکربندی ثبت وقایع برای برنامه‌های FastAPI Adding Logging Configuration for FastAPI Applications

  • نحوه پیکربندی چندین ثبت‌کننده در ماژول ثبت وقایع How to configure multiple loggers in the logging module

  • اضافه کردن کنترل‌کننده‌های فایل برای ذخیره لاگ‌ها Adding File Handlers for Saving Logs

  • اضافه کردن ثبت وقایع به نقاط پایانی FastAPI Add logging to your FastAPI endpoints

  • ثبت وقایع پایتون: فیلترها و فیلترهای سفارشی Python logging: filters and custom filters

  • ثبت HTTPExceptions با یک کنترل‌کننده استثنا Logging HTTPExceptions with an Exception Handler

  • شناسایی لاگ‌ها از یک درخواست: شناسه همبستگی Identifying logs from the same request: Correlation ID

  • اضافه کردن فایل‌های لاگ با فرمت JSON Adding JSON-formatted log files

  • مبهم‌سازی آدرس‌های ایمیل در لاگ‌ها با استفاده از یک فیلتر سفارشی Obfuscating email addresses in logs using a custom filter

  • اضافه کردن Logtail برای ثبت وقایع ابری در FastAPI Adding Logtail for Cloud Logging in FastAPI

  • فعال کردن Logtail فقط در تولید Enabling Logtail in only in production

احراز هویت کاربر با FastAPI User authentication with FastAPI

  • معرفی احراز هویت کاربر Introduction to user authentication

  • نصب نیازمندی‌ها و JWTها چیستند؟ Installing requirements and, what are JWTs?

  • اضافه کردن جدول کاربران و بازیابی کاربران از طریق ایمیل Adding a users table and retrieving users by email

  • اضافه کردن ثبت نام کاربر و تست‌ها Adding user registration and tests

  • اضافه کردن تست برای نقطه پایانی ثبت نام کاربر Adding tests for the user registration endpoint

  • نحوه هش کردن رمزهای عبور با passlib How to hash passwords with passlib

  • تولید توکن دسترسی Generate the access token

  • بازیابی کاربر فعلی با توکن آنها Retrieve the current user with their token

  • استفاده از کاربر فعلی در روتر API Use the current user in the API router

  • تزریق وابستگی: دریافت کاربر Dependency injection: getting the user

  • اضافه کردن روابط کاربر به جداول دیگر Adding user relationships to other tables

  • (اختیاری) OAuth Password Bearer و Swagger Auth (Optional) OAuth Password Bearer and Swagger Auth

روابط چند به چند Many-to-many relationships

  • معرفی روابط چند به چند Introduction to many-to many

  • اضافه کردن جدول برای لایک‌های پست Adding a table for post likes

  • اضافه کردن یک مسیر API برای لایک کردن پست‌ها Adding an API route to like posts

  • استخراج کوئری‌های قابل استفاده مجدد با SQLAlchemy Extracting reusable queries with SQLAlchemy

  • آرگومان‌های رشته کوئری و مرتب‌سازی داده‌ها با Enum Query string arguments and data sorting with Enum

تأیید ایمیل کاربر User email confirmation

  • ایجاد توکن تأیید Creating the confirmation token

  • رمزگشایی توکن تأیید Decoding the confirmation token

  • اضافه کردن یک نقطه پایانی تأیید کاربر Adding a user confirmation endpoint

  • الزام تأیید کاربر برای درخواست‌های احراز هویت شده Requiring user confirmation for authenticated requests

  • راه‌اندازی و پیکربندی Mailgun Mailgun set-up and configuration

  • ارسال ایمیل و تست با پایتون Sending emails and testing with Python

  • ارسال ایمیل تأیید در هنگام ثبت نام Sending a confirmation email on registration

  • ارسال ایمیل با وظایف پس‌زمینه Sending emails with background tasks

آپلود فایل با FastAPI File Uploads with FastAPI

  • راه‌اندازی حساب برای Backblaze B2 Account setup for Backblaze B2

  • پیکربندی ما برای Backblaze B2 Our configuration for Backblaze B2

  • کتابخانه داخلی برای Backblaze B2 Internal library for Backblaze B2

  • نوشتن نقطه پایانی آپلود فایل ما Writing our file upload endpoint

  • نوشتن تست‌ها برای آپلود فایل Writing tests for file upload

وظایف پس‌زمینه برای تولید تصویر Background Tasks for Image Generation

  • مدل و تغییرات پایگاه داده برای تولید تصویر Model and database changes for image generation

  • پیکربندی برای DeepAI، سرویس شخص ثالث ما Configuration for DeepAI, our third party service

  • تولید تصاویر با استفاده از وظایف پس‌زمینه Generating images using background tasks

  • اجرای تولید تصویر در نقطه پایانی FastAPI ما Executing image generation in our FastAPI endpoint

استقرار FastAPI و مدیریت برنامه FastAPI Deployments and Application Management

  • به‌روزرسانی پروژه ما به Pydantic v2 Updating our project to Pydantic v2

  • استقرار یک برنامه FastAPI در Render Deploy a FastAPI app to Render

  • اضافه کردن یک پایگاه داده رایگان PostgreSQL به برنامه FastAPI خود Add a free PostgreSQL database to your FastAPI app

  • مدیریت خطا با Sentry برای برنامه‌های FastAPI Error management with Sentry for FastAPI apps

  • ادغام مداوم با GitHub Actions برای برنامه‌های پایتون Continuous Integration with GitHub Actions for Python apps

بخش جایزه Bonus section

  • سخنرانی جایزه Bonus lecture

نمایش نظرات

آموزش تسلط بر REST API با FastAPI
جزییات دوره
13.5 hours
121
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
2,495
4.4 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Jose Salvatierra Jose Salvatierra

بنیانگذار Teclado و مهندس نرم افزار