Skip to content

Instantly share code, notes, and snippets.

@Eugene-Fed
Last active May 7, 2025 07:59
Show Gist options
  • Save Eugene-Fed/7e1242d9eb1f511a7f9aa9765bda2041 to your computer and use it in GitHub Desktop.
Save Eugene-Fed/7e1242d9eb1f511a7f9aa9765bda2041 to your computer and use it in GitHub Desktop.

Оглавление

  1. Список инструментов

  2. Ключевые функции инструментов

  3. Стек: проблемы и функции

  4. Базовый интерфейс инструментов

  5. Типовые проекты

  6. План обучения

    • Этап 1. Основы Python и веб-разработки (1–2 недели)
    • Этап 2. Основы FastAPI (2–3 недели)
    • Этап 3. Продвинутые темы (3–4 недели)
    • Этап 4. Реальные проекты (2–3 месяца)
    • Этап 5. Продвинутые навыки и оптимизация (1–2 месяца)
    • Этап 6. Практика и профессиональный уровень
    • Ресурсы для изучения
    • Примеры проектов для практики
    • Советы для успешного обучения
  7. Контроль знаний

  8. Полезные ссылки

  9. Дополнительные ресурсы


1. Основные инструменты FastAPI

  • FastAPI
    Основной фреймворк для создания веб-сервисов и API.
    Документация

  • Uvicorn
    Асинхронный сервер для запуска FastAPI-приложений.
    Документация

  • Starlette
    Базовый фреймворк, на котором построен FastAPI.
    Документация

  • Pydantic
    Библиотека для валидации данных и генерации схем.
    Документация


2. Базы данных


3. Тестирование

  • TestClient
    Встроенный тест-клиент FastAPI для проверки эндпоинтов.
    Примеры

  • Postman
    Инструмент для тестирования API.
    Официальный сайт

  • Swagger/UI
    Автоматическая документация, встроенная в FastAPI.
    Пример


4. Развертывание и CI/CD

  • Docker
    Для контейнеризации приложений.
    Документация

  • Nginx
    Веб-сервер для проксирования и балансировки нагрузки.
    Документация

  • GitHub Actions
    Платформа для CI/CD.
    Документация

  • Uvicorn в продакшене
    Использование с Gunicorn или Nginx для стабильной работы.
    Пример


5. Логирование и мониторинг


6. Асинхронность и оптимизация

  • asyncio
    Модуль для асинхронного программирования в Python.
    Документация

  • Celery
    Библиотека для асинхронных задач (например, отправка email).
    Документация

  • Redis для кэширования
    Хранение данных в памяти для ускорения запросов.
    Пример

  • Rate Limiting
    Библиотеки для ограничения запросов (например, fastapi-ratelimiter).
    Пример


7. Безопасность

  • JWT (JSON Web Tokens)
    Библиотеки для аутентификации (например, python-jose, fastapi-users).
    Пример

  • OAuth2
    Интеграция с внешними провайдерами (Google, GitHub).
    Документация

  • SQL Injection/XSS Protection
    Защита через валидацию данных и ORM.


8. Версионирование и Git

  • Git
    Управление версиями кода.
    Документация

  • GitHub/GitLab
    Хостинг репозиториев и CI/CD.


9. Дополнительные инструменты

  • WebSocket
    Поддержка WebSocket в FastAPI для реального времени.
    Пример

  • Markdown для документации
    Дополнительные комментарии к API через Swagger.

  • IDE
    PyCharm, VS Code (с расширениями для Python и REST API).

  • Интеграции с внешними сервисами


10. Производительность


Примеры стеков для проектов

  1. Базовый стек:

    • FastAPI + Uvicorn + Pydantic + SQLAlchemy + Docker.
  2. Асинхронный стек:

    • FastAPI + Motor (MongoDB) + Celery + Redis + Nginx.
  3. Производственный стек:

    • FastAPI + SQLAlchemy + Docker + Nginx + Prometheus + Sentry.

1. Основные инструменты FastAPI

  • FastAPI

    • Ключевые функции:
      • Создание быстрых, безопасных и документированных RESTful API.
      • Автоматическая валидация данных через Pydantic.
      • Асинхронность "из коробки" для высокой производительности.
      • Генерация документации через Swagger/UI.
    • Решаемые проблемы:
      • Сокращение времени разработки за счёт автоматизации.
      • Упрощение документирования и тестирования.
      • Обеспечение безопасности через валидацию данных.
  • Uvicorn

    • Ключевые функции:
      • Асинхронный сервер для запуска FastAPI-приложений.
      • Высокая производительность для обработки большого числа соединений.
    • Решаемые проблемы:
      • Скорость обработки запросов в многопоточных/многопроцессорных средах.
      • Поддержка асинхронности в приложении.
  • Starlette

    • Ключевые функции:
      • Базовый фреймворк для FastAPI с поддержкой асинхронности.
      • Поддержка WebSocket и GraphQL.
    • Решаемые проблемы:
      • Основа для создания гибких веб-приложений.
      • Интеграция с дополнительными протоколами (например, WebSocket).
  • Pydantic

    • Ключевые функции:
      • Валидация и сериализация данных.
      • Генерация схем для документации.
    • Решаемые проблемы:
      • Проверка корректности входных данных (например, типы, форматы).
      • Автоматическая генерация документации для API.

2. Базы данных

  • SQLAlchemy

    • Ключевые функции:
      • ORM для работы с SQL-базами (PostgreSQL, MySQL).
      • Абстракция SQL-запросов через объекты.
    • Решаемые проблемы:
      • Избежание SQL-инъекций через ORM.
      • Упрощение работы с реляционными базами.
  • Tortoise ORM

    • Ключевые функции:
      • Асинхронный ORM для SQL и NoSQL.
      • Поддержка асинхронных запросов.
    • Решаемые проблемы:
      • Интеграция с асинхронными приложениями FastAPI.
      • Работа с NoSQL-базами в асинхронном стиле.
  • MongoDB + Motor

    • Ключевые функции:
      • Асинхронный доступ к MongoDB.
      • Хранение неструктурированных данных.
    • Решаемые проблемы:
      • Работа с NoSQL-базами в асинхронном режиме.
      • Хранение больших объёмов данных с гибкой схемой.
  • Redis

    • Ключевые функции:
      • Кэш в памяти для быстрого доступа к данным.
      • Хранение временных данных (например, сессии, токены).
    • Решаемые проблемы:
      • Ускорение запросов за счёт кэширования.
      • Обработка временных данных без нагрузки на основную БД.

3. Тестирование

  • TestClient

    • Ключевые функции:
      • Встроенный клиент для тестирования эндпоинтов FastAPI.
      • Проверка валидации данных, HTTP-статусов и ответов.
    • Решаемые проблемы:
      • Автоматизация тестирования API.
      • Упрощение отладки эндпоинтов.
  • Pytest

    • Ключевые функции:
      • Популярный фреймворк для тестирования Python-кода.
      • Поддержка фикстур (fixtures), параметризации тестов, плагинов.
      • Интеграция с TestClient для тестирования FastAPI-эндпоинтов.
      # Пример теста с Pytest и TestClient
      from fastapi.testclient import TestClient
      from main import app
      
      client = TestClient(app)
      
      def test_read_main():
          response = client.get("/")
          assert response.status_code == 200
          assert response.json() == {"message": "Hello World"}
    • Решаемые проблемы:
      • Организация сложных тестовых сценариев (например, мультипоточность, асинхронность).
      • Упрощение повторного использования кода через фикстуры.
      • Параметризация тестов для проверки разных входных данных.
  • Postman

    • Ключевые функции:
      • Интерфейс для ручного/автоматического тестирования API.
      • Визуализация запросов и ответов.
    • Решаемые проблемы:
      • Проверка API без написания кода.
      • Коллаборация с командой через коллекции запросов.
  • Swagger/UI

    • Ключевые функции:
      • Автоматическая генерация документации.
      • Проверка эндпоинтов через веб-интерфейс.
    • Решаемые проблемы:
      • Снижение ручной работы по документированию.
      • Проверка API непосредственно через браузер.

Почему Pytest важен для FastAPI?

  1. Простота написания тестов:
    Pytest упрощает создание тестов через декораторы (@pytest.fixture, @pytest.mark.asyncio) и интеграцию с TestClient.

  2. Фикстуры:
    Позволяют повторно использовать код для настройки тестового окружения (например, создание тестовых данных, подключение к БД).

  3. Асинхронность:
    Поддержка асинхронных тестов через pytest-asyncio для проверки асинхронных эндпоинтов FastAPI.

  4. Плагины:
    Расширение функционала (например, pytest-mock для мокирования, pytest-html для генерации отчётов).


Примеры использования Pytest в FastAPI

  1. Тестирование асинхронных эндпоинтов:

    import pytest
    from fastapi.testclient import TestClient
    from main import app
    
    @pytest.mark.asyncio
    async def test_async_endpoint():
        client = TestClient(app)
        response = client.get("/async-endpoint")
        assert response.status_code == 200
  2. Использование фикстур для БД:

    @pytest.fixture
    def db_session():
        # Создание тестовой сессии SQLAlchemy
        return SessionLocal()
    
    def test_create_item(db_session):
        client = TestClient(app)
        response = client.post("/items/", json={"name": "Test"})
        assert response.status_code == 201

Проблемы, которые решает Pytest

  • Сложность в написании сложных тестов:
    Pytest предоставляет инструменты для организации тестов, включая параметризацию и фикстуры.

  • Отсутствие повторного использования кода:
    Фикстуры позволяют избежать дублирования кода для настройки тестового окружения.

  • Недостаточная поддержка асинхронности:
    Pytest с плагином pytest-asyncio упрощает тестирование асинхронных функций FastAPI.

  • Низкая читаемость тестов:
    Плагины и структурированные тесты улучшают читаемость и поддерживаемость кода.


4. Развертывание и CI/CD

  • Docker

    • Ключевые функции:
      • Контейнеризация приложений для единообразной среды.
      • Упрощение развертывания в разных окружениях.
    • Решаемые проблемы:
      • Конфликты зависимостей между разработкой и продакшеном.
      • Быстрое масштабирование приложений.
  • Nginx

    • Ключевые функции:
      • Проксирование запросов к FastAPI.
      • Балансировка нагрузки и SSL-терминация.
    • Решаемые проблемы:
      • Защита FastAPI от прямого доступа.
      • Улучшение безопасности и производительности.
  • GitHub Actions

    • Ключевые функции:
      • Автоматизация сборки, тестирования и деплоя.
      • Интеграция с GitHub.
    • Решаемые проблемы:
      • Снижение риска ошибок при ручном деплое.
      • Автоматизация CI/CD-процесса.
  • Uvicorn в продакшене

    • Ключевые функции:
      • Высокая производительность для продакшен-окружения.
      • Интеграция с Nginx и Gunicorn.
    • Решаемые проблемы:
      • Обработка большого числа запросов без тормозов.
      • Устойчивость к перегрузке.

5. Логирование и мониторинг

  • Python Logging

    • Ключевые функции:
      • Стандартный модуль для записи логов.
      • Фильтрация и форматирование сообщений.
    • Решаемые проблемы:
      • Отслеживание ошибок и событий в приложении.
      • Упрощение отладки.
  • Sentry

    • Ключевые функции:
      • Мониторинг ошибок в реальном времени.
      • Агрегация логов и трейсинг стека.
    • Решаемые проблемы:
      • Быстрое обнаружение и устранение ошибок.
      • Визуализация частоты и источников ошибок.
  • Prometheus + Grafana

    • Ключевые функции:
      • Сбор метрик (запросы, время обработки, память).
      • Визуализация данных через Grafana.
    • Решаемые проблемы:
      • Мониторинг производительности приложения.
      • Прогнозирование нагрузки и оптимизация.

6. Асинхронность и оптимизация

  • asyncio

    • Ключевые функции:
      • Асинхронное программирование в Python.
      • Написание корутин и задач.
    • Решаемые проблемы:
      • Параллельная обработка запросов без блокировки потоков.
      • Улучшение производительности для I/O-операций.
  • Celery

    • Ключевые функции:
      • Выполнение фоновых задач (например, отправка email).
      • Очередь заданий для асинхронной обработки.
    • Решаемые проблемы:
      • Избежание задержек из-за долгих операций.
      • Улучшение UX за счёт асинхронной обработки.
  • Redis для кэширования

    • Ключевые функции:
      • Хранение часто используемых данных в памяти.
      • Ускорение доступа к данным.
    • Решаемые проблемы:
      • Снижение нагрузки на основную БД.
      • Ускорение ответов на запросы.
  • Rate Limiting

    • Ключевые функции:
      • Ограничение количества запросов от одного клиента.
      • Защита от DDoS-атак.
    • Решаемые проблемы:
      • Предотвращение перегрузки сервера.
      • Обеспечение стабильности работы API.

7. Безопасность

  • JWT (JSON Web Tokens)

    • Ключевые функции:
      • Аутентификация через токены.
      • Передача данных между клиентом и сервером.
    • Решаемые проблемы:
      • Безопасная аутентификация без хранения паролей.
      • Упрощение управления сессиями.
  • OAuth2

    • Ключевые функции:
      • Интеграция с соцсетями (Google, GitHub) для аутентификации.
      • Управление доступом через токены.
    • Решаемые проблемы:
      • Упрощение входа для пользователей.
      • Управление правами доступа.
  • Защита от SQLi/XSS

    • Ключевые функции:
      • Валидация данных через Pydantic и ORM.
      • Экранирование SQL-запросов.
    • Решаемые проблемы:
      • Предотвращение уязвимостей в приложении.
      • Защита от атак ввода неправильных данных.

8. Версионирование и Git

  • Git

    • Ключевые функции:
      • Управление версиями кода.
      • Коллаборация в команде.
    • Решаемые проблемы:
      • Следование истории изменений.
      • Решение конфликтов кода.
  • GitHub/GitLab

    • Ключевые функции:
      • Хостинг репозиториев.
      • CI/CD через Actions/Pipelines.
    • Решаемые проблемы:
      • Упрощение работы в команде.
      • Автоматизация процессов.

9. Дополнительные инструменты

  • WebSocket

    • Ключевые функции:
      • Двусторонняя связь между клиентом и сервером.
      • Работа с реальными данными (чаты, игры).
    • Решаемые проблемы:
      • Избежание постоянных запросов (polling).
      • Улучшение UX для реального времени.
  • Markdown для документации

    • Ключевые функции:
      • Добавление описаний к API через комментарии.
      • Генерация документации в Swagger/UI.
    • Решаемые проблемы:
      • Улучшение читаемости кода.
      • Автоматизация документирования.
  • IDE (PyCharm, VS Code)

    • Ключевые функции:
      • Подсветка синтаксиса, отладчик, интеграция с Git.
      • Расширения для работы с REST API.
    • Решаемые проблемы:
      • Ускорение разработки за счёт удобных инструментов.
      • Упрощение отладки и тестирования.
  • Интеграции с внешними сервисами (Stripe, AWS S3)

    • Ключевые функции:
      • Подключение платежных систем и облачного хранения.
      • Расширение функционала приложения.
    • Решаемые проблемы:
      • Интеграция с популярными сервисами без изобретения велосипеда.

10. Производительность

  • Memcached

    • Ключевые функции:
      • Альтернатива Redis для кэширования.
      • Быстрый доступ к данным в памяти.
    • Решаемые проблемы:
      • Оптимизация запросов к БД.
      • Снижение задержек.
  • Gunicorn

    • Ключевые функции:
      • Веб-сервер для FastAPI в продакшене.
      • Многопроцессорная обработка запросов.
    • Решаемые проблемы:
      • Улучшение стабильности и масштабируемости.
      • Интеграция с Nginx.

Примеры решений

  • Проблема: "Мой API медленно обрабатывает запросы"
    Решение: Используйте асинхронность (asyncio) и кэширование (Redis).

  • Проблема: "Нужно защитить API от DDoS"
    Решение: Добавьте Rate Limiting через fastapi-ratelimiter.

  • Проблема: "Документация API устарела"
    Решение: Используйте Swagger/UI для автоматической генерации.



Этап 1. Основы Python и веб-разработки (1–2 недели)

  1. Python для начинающих:

    • Основы языка: переменные, циклы, функции, классы.
    • Работа с файлами, списками, словарями.
    • Управление версиями (Git).
  2. Основы веб-разработки:

    • HTTP-протокол: методы (GET, POST, PUT, DELETE), статус-коды.
    • Основы RESTful API.
    • Работа с JSON.
  3. Ознакомление с фреймворками:

    • Краткий обзор Flask/Django для контекста (необязательно, но полезно).

Этап 2. Основы FastAPI (2–3 недели)

  1. Установка и первые шаги:

    • Установка FastAPI, Uvicorn, зависимости.
    • Создание простого приложения: @app.get("/") и запуск сервера.
  2. Основные концепции:

    • Декораторы: @app.get, @app.post, @app.put, @app.delete.
    • Pydantic: создание моделей данных, валидация.
      from pydantic import BaseModel
      
      class Item(BaseModel):
          name: str
          price: float
    • Параметры: пути, запроса, тела.
      @app.get("/items/{item_id}")
      def read_item(item_id: int, q: str = None):
          return {"item_id": item_id, "q": q}
  3. Документация (Swagger/UI):

    • Генерация документации через /docs и /redoc.
    • Настройка тегов, описаний, примеров.
  4. Запуск и тестирование:

    • Использование uvicorn для запуска.
    • Тестирование через Postman или Swagger UI.

Этап 3. Продвинутые темы (3–4 недели)

  1. Асинхронность и асинхронные эндпоинты:

    • Использование async def и await.
    • Параллельная обработка через asyncio.gather.
  2. Dependency Injection:

    • Создание зависимостей через Depends.
    • Пример: повторное использование кода для аутентификации.
      def get_db():
          db = SessionLocal()
          try:
              yield db
          finally:
              db.close()
      
      @app.get("/items/")
      def read_items(skip: int = 0, limit: int = 10, db: Session = Depends(get_db)):
          return get_items(db, skip=skip, limit=limit)
  3. Обработка ошибок:

    • Использование HTTPException и кастомных исключений.
    • Настройка обработчиков ошибок.
  4. Аутентификация и авторизация:

    • JWT-токены через fastapi-users или python-jose.
    • OAuth2, кастомные схемы аутентификации.
  5. Интеграция с базами данных:

    • SQLAlchemy, MongoDB, Redis.
    • Пример с SQLAlchemy:
      from sqlalchemy.orm import Session
      from .models import Item
      
      @app.post("/items/", response_model=Item)
      def create_item(item: ItemCreate, db: Session = Depends(get_db)):
          db_item = Item(**item.dict())
          db.add(db_item)
          db.commit()
          db.refresh(db_item)
          return db_item
  6. Тестирование:

    • Использование TestClient для юнит-тестов.
    • Проверка валидации, HTTP-статусов, ответов.

Этап 4. Реальные проекты (2–3 месяца)

  1. Создание простого API:

    • Пример: блог с CRUD-операциями для статей.
    • Интеграция с базой данных и аутентификацией.
  2. Продвинутый проект:

    • API для интернет-магазина с:
      • Корзиной и заказами.
      • Фильтрацией товаров.
      • Асинхронной отправкой уведомлений.
  3. Развертывание в продакшен:

    • Использование Docker, Nginx, Uvicorn.
    • Настройка CI/CD (GitHub Actions, Docker Hub).

Этап 5. Продвинутые навыки и оптимизация (1–2 месяца)

  1. Оптимизация производительности:

    • Кэширование через Redis или Memcached.
    • Ограничение скорости запросов (Rate Limiting).
    • Асинхронные задачи через Celery или RQ.
  2. Логирование и мониторинг:

    • Использование logging и Sentry.
    • Мониторинг через Prometheus и Grafana.
  3. Безопасность:

    • Защита от SQL-инъекций и XSS.
    • Валидация данных через Pydantic.
    • HTTPS и сертификаты.
  4. Интеграция с внешними сервисами:

    • API для платежных систем (Stripe, PayPal).
    • Синхронизация с S3 или Google Cloud Storage.

Этап 6. Практика и профессиональный уровень

  1. Участие в open source:

    • Исправление ошибок в FastAPI или связанных проектах.
    • Создание своих библиотек или плагинов.
  2. Изучение исходного кода FastAPI:

    • Понимание работы декораторов, валидации, асинхронности.
  3. Рефлексия и обучение:

    • Чтение статей, блогов, документации.
    • Участие в сообществах (Discord, Reddit, Stack Overflow).
  4. Подготовка к собеседованиям:

    • Отработка вопросов по FastAPI (например, из списка вопросов).
    • Практика решения задач на платформах вроде LeetCode (для алгоритмов).

Ресурсы для изучения

  1. Официальная документация: FastAPI Docs.
  2. Книги:
    • "FastAPI: A Practical Guide to Building APIs with Python".
  3. Курсы:
    • Coursera, Udemy (например, "Complete FastAPI Masterclass").
  4. Сообщества:
    • Discord FastAPI Community.
    • Stack Overflow, Reddit (r/FastAPI).

Примеры проектов для практики

  1. Сервис для заметок:
    • CRUD-операции, JWT-аутентификация, асинхронное сохранение в БД.
  2. API для погоды:
    • Использование внешних API, кэширование, валидация данных.
  3. Сервис для обработки файлов:
    • Загрузка файлов через FastAPI, асинхронная обработка.

Советы для успешного обучения

  • Практикуйтесь регулярно: кодируйте даже по 1–2 часа в день.
  • Решайте реальные задачи: начните с маленьких проектов и усложняйте их.
  • Изучайте исходный код: FastAPI — это открытый проект, и его можно изучить.
  • Участвуйте в сообществах: задавайте вопросы, помогайте другим.

Этот план поможет вам стать профессионалом в FastAPI, но ключевым фактором будет регулярная практика и изучение новых возможностей фреймворка. Удачи! 🚀

  1. Что такое FastAPI и как он связан с Starlette и Uvicorn?
    (Проверяет понимание основных компонентов и архитектуры)

  2. Какие основные декораторы используются в FastAPI для определения эндпоинтов? Приведите пример.
    (Пример: @app.get, @app.post, @app.put, @app.delete)

  3. Что такое Pydantic в контексте FastAPI? Какие его основные преимущества?
    (Валидация данных, динамическая документация)

  4. Как определить схему данных для запроса или ответа в FastAPI?
    (Пример: class Item(BaseModel): ...)

  5. Как настроить параметры пути, запроса и тела в FastAPI?
    (Пример: path parameters, query parameters, request body)

  6. Что такое Dependency Injection в FastAPI? Приведите пример.
    (Пример: Depends для повторного использования кода)

  7. Как FastAPI генерирует документацию через Swagger/UI? Как её настроить?
    (URL, настройка тегов, описание эндпоинтов)


  1. Как реализовать асинхронные эндпоинты в FastAPI? Приведите пример.
    (Использование async def и await)

  2. Как обрабатывать ошибки в FastAPI? Как создать кастомный HTTP-статус или исключение?
    (Пример: HTTPException, status.HTTP_404_NOT_FOUND)

  3. Как настроить аутентификацию/авторизацию в FastAPI?
    (Примеры: JWT, OAuth2, кастомные зависимости)

  4. Как интегрировать FastAPI с базой данных (например, SQLAlchemy или MongoDB)?
    (Пример: создание сессий через Dependency Injection)

  5. Как протестировать FastAPI-эндпоинт с использованием тест-клиента?
    (Пример: TestClient, проверка статуса и ответа)

  6. Как настроить кэширование в FastAPI?
    (Пример: CacheControlHeader, сторонние библиотеки)

  7. Как обрабатывать загрузку файлов в FastAPI?
    (Пример: UploadFile, проверка формата и размера)

  8. Как настроить логирование в FastAPI?
    (Пример: настройка уровня логов, форматирование)


  1. Как бы вы оптимизировали асинхронный эндпоинт, который выполняет несколько долгих операций?
    (Пример: параллельная обработка через asyncio.gather)

  2. Предположим, у вас есть эндпоинт, который время от времени возвращает ошибку 500. Как бы вы отладили это?
    (Проверка логов, тестирование с TestClient, анализ кода)

  3. Как бы вы реализовали Rate Limiting в FastAPI для предотвращения DDoS-атак?
    (Пример: использование зависимостей или сторонних библиотек)

  4. Как бы вы интегрировали FastAPI с GraphQL?
    (Пример: использование graphene или fastapi-graphql)

  5. Как бы вы развернули FastAPI-приложение в продакшене?
    (Пример: Docker, Nginx, ~~Gunicorn/~~Uvicorn, CI/CD)


  1. Какие проблемы вы встречали при работе с FastAPI и как их решали?
    (Проверка практического опыта)

  2. Какие преимущества FastAPI перед Flask/Django?
    (Асинхронность, валидация, документация)

  3. Какие возможности FastAPI вы бы расширили или улучшили?
    (Идеи: улучшение документации, добавление новых инструментов)


  1. Напишите пример FastAPI-эндпоинта, который принимает JSON-объект, валидирует его через Pydantic и возвращает ответ с HTTP-статусом 201.
    (Проверка практического кода)

  2. Как исправить эту ошибку?
    (Пример: код с ошибкой валидации данных или асинхронности)


Этап 1. Основы Python и веб-разработки

  1. Python для начинающих:

    • Официальная документация Python: Python Docs.
    • Git для начинающих: Pro Git Book.
  2. Основы веб-разработки:


Этап 2. Основы FastAPI

  1. Установка и первые шаги:

  2. Основные концепции:

  3. Документация (Swagger/UI):

    • Генерация документации: Swagger UI.
  4. Запуск и тестирование:


Этап 3. Продвинутые темы

  1. Асинхронность и асинхронные эндпоинты:

  2. Dependency Injection:

  3. Обработка ошибок:

  4. Аутентификация и авторизация:

  5. Интеграция с базами данных:

  6. Тестирование:

    • Тестирование с TestClient: Testing.

Этап 4. Реальные проекты

  1. Создание простого API:
  2. Продвинутый проект:
  3. Развертывание в продакшен:

Этап 5. Продвинутые навыки и оптимизация

  1. Оптимизация производительности:
  2. Логирование и мониторинг:
  3. Безопасность:
  4. Интеграция с внешними сервисами:

Этап 6. Практика и профессиональный уровень

  1. Участие в open source:
  2. Изучение исходного кода FastAPI:
  3. Рефлексия и обучение:
  4. Подготовка к собеседованиям:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment