Перейти к содержимому

План практических занятий: Разработка интернет-приложений

Среда

Python 3.11+, FastAPI, uvicorn; SQLite + SQLAlchemy + Alembic; pytest. Запуск сервера: uvicorn main:app --reload, проверка через браузер/Swagger UI (/docs) или curl.

Формат занятий

Каждая практика — пошаговая сборка работающего кода с фрагментами и проверкой. Структура: ## Цель, ## Теория (кратко), ## Задание (шаги с кодом), ## Критерии оценки (проценты), ## Вопросы для самопроверки.

Сквозной результат курса — REST API на FastAPI с базой данных, документацией, тестами и аутентификацией.


Раздел 1 (1 лаба)

  1. FastAPI «Книги» — первое приложение — установка окружения, первый эндпоинт, запуск, Swagger.

Раздел 2 (8 лаб)

  1. HTTP-запросы и первые эндпоинты — path/query-параметры, методы, коды.
  2. Pydantic-модели и валидация — схемы запроса/ответа, ограничения, 422.
  3. CRUD-ресурс — GET/POST/PUT/PATCH/DELETE, корректные коды.
  4. Коды состояния и обработка ошибок — HTTPException, обработчики, единый формат.
  5. Пагинация, фильтрация и сортировка — query-параметры, метаданные ответа.
  6. Версионирование API и структура проекта — APIRouter, /api/v1, модули.
  7. Документация OpenAPI/Swagger и зависимости — обогащение схемы, Depends.
  8. Тестирование REST API — pytest + TestClient, фикстуры, негативные кейсы.

Раздел 3 (3 лабы)

  1. SQL: запросы к базе данных — DDL/DML, JOIN, агрегаты, индексы, план запроса.
  2. ORM: модели и CRUD через SQLAlchemy — модели, связи, сессия через Depends.
  3. Миграции схемы через Alembic — init, autogenerate, upgrade/downgrade.

Раздел 4 (1 лаба)

  1. Аутентификация и авторизация (JWT + RBAC) — хеширование паролей, выдача/проверка JWT, защита маршрутов, роли, CORS.

Связь с экзаменом

Практики напрямую готовят к практической части экзамена (private_exam_tasks.md): реализация эндпоинтов, валидация, БД, тесты и безопасность на FastAPI.