План практических занятий: Разработка интернет-приложений
Среда
Python 3.11+, FastAPI, uvicorn; SQLite + SQLAlchemy + Alembic; pytest. Запуск сервера:
uvicorn main:app --reload, проверка через браузер/Swagger UI (/docs) или curl.
Формат занятий
Каждая практика — пошаговая сборка работающего кода с фрагментами и проверкой.
Структура: ## Цель, ## Теория (кратко), ## Задание (шаги с кодом),
## Критерии оценки (проценты), ## Вопросы для самопроверки.
Сквозной результат курса — REST API на FastAPI с базой данных, документацией, тестами и аутентификацией.
Раздел 1 (1 лаба)
- FastAPI «Книги» — первое приложение — установка окружения, первый эндпоинт, запуск, Swagger.
Раздел 2 (8 лаб)
- HTTP-запросы и первые эндпоинты — path/query-параметры, методы, коды.
- Pydantic-модели и валидация — схемы запроса/ответа, ограничения, 422.
- CRUD-ресурс — GET/POST/PUT/PATCH/DELETE, корректные коды.
- Коды состояния и обработка ошибок — HTTPException, обработчики, единый формат.
- Пагинация, фильтрация и сортировка — query-параметры, метаданные ответа.
- Версионирование API и структура проекта — APIRouter,
/api/v1, модули. - Документация OpenAPI/Swagger и зависимости — обогащение схемы, Depends.
- Тестирование REST API — pytest + TestClient, фикстуры, негативные кейсы.
Раздел 3 (3 лабы)
- SQL: запросы к базе данных — DDL/DML, JOIN, агрегаты, индексы, план запроса.
- ORM: модели и CRUD через SQLAlchemy — модели, связи, сессия через Depends.
- Миграции схемы через Alembic — init, autogenerate, upgrade/downgrade.
Раздел 4 (1 лаба)
- Аутентификация и авторизация (JWT + RBAC) — хеширование паролей, выдача/проверка JWT, защита маршрутов, роли, CORS.
Связь с экзаменом
Практики напрямую готовят к практической части экзамена (private_exam_tasks.md):
реализация эндпоинтов, валидация, БД, тесты и безопасность на FastAPI.