12 промтов для FastAPI: эндпоинты, Pydantic и фоновые задачи

12 промтов для FastAPI: эндпоинты, Pydantic и фоновые задачи

FastAPI — один из самых быстрорастущих веб-фреймворков Python. За счёт асинхронности и автогенерации OpenAPI-схем он позволяет собирать API быстрее, чем Flask или Django. Но даже опытные разработчики тратят время на шаблонный код и поиск правильных формулировок для нейросетей. В этой подборке — 12 проверенных промтов для работы с FastAPI, Pydantic и фоновыми задачами. Они сэкономят часы и помогут получить чистый код с первого запроса.

Все промты проверены в реальной работе. Формулируйте их как есть или адаптируйте под свой проект. Для каждого промта я даю пояснение, когда он нужен и что ожидать на выходе.

Промты для эндпоинтов

1. Скелет REST API для существующей модели

Самый частый запрос — сгенерировать CRUD за пару секунд.

Создай FastAPI-приложение с маршрутами для модели {Product}.
Нужны эндпоинты: GET /products, GET /products/{id}, POST /products, PUT /products/{id}, DELETE /products/{id}.
Используй SQLAlchemy 2.0 + Pydantic. Добавь валидацию: title — строка от 3 до 100 символов, price — число больше 0.
Ответы оборачивай в JSON: {"data": ..., "meta": {"total": n}}.

Пример результата — router на 60–80 строк с зависимостями для сессии БД, status_code=201 для POST и обработкой 404.

2. Эндпоинт с фильтрацией, пагинацией и сортировкой

Напиши GET /items с query-параметрами: page, size, sort_by, order (asc/desc), filter_field, filter_value.
Используй класс PageParams с Pydantic. Верни items и общее количество. Обработай ошибку неверного sort_by — верни 400.

Такой промт генерирует универсальный список, который потом легко переиспользовать в разных модулях.

3. Асинхронный эндпоинт с таймаутом и отменой

Создай асинхронный эндпоинт /fetch-data, который вызывает внешний API через httpx.AsyncClient.
Добавь таймаут 5 секунд и обработку asyncio.TimeoutError с возвратом 504. Используй структуру try/except.

Не забудьте в промте указать версию httpx — от этого зависит синтаксис.

4. Эндпоинт загрузки файла с валидацией типа и размера

Напиши POST /upload для загрузки изображений. Принимай файл через UploadFile.
Ограничь размер 5 МБ и расширения: .jpg, .png, .webp. При превышении — 413, при неверном типе — 415.
Сохраняй файл через aiofiles, верни ссылку на скачивание.

Промт закрывает большинство задач с файлами: от аватарок до документов.

Промты для Pydantic

5. Схема с вложенными моделями

Создай Pydantic-схему Order с полями: id, customer, items (лист OrderItem), total_sum.
Вложенную схему OrderItem опиши с помощью from_attributes=True. Добавь вычисляемое поле total_sum через @computed_field.

Это типичный случай, когда руки сами тянутся написать много кода, а промт делает это за секунду.

6. Валидация пароля с кастомным validator

Добавь в схему UserCreate поле password.
Напиши model_validator, который проверяет:
— длину не менее 8 символов,
— наличие букв верхнего и нижнего регистра,
— наличие цифры.
Верни понятную ошибку на русском.

Вы получите готовый валидатор без необходимости вспоминать регулярные выражения.

7. Переиспользуемая схема с конфигурацией примеров

Создай схему ProductOut с настройками ConfigDict(from_attributes=True, json_schema_extra={...}).
В json_schema_extra добавь пример валидного объекта. Затем используй эту схему для документации OpenAPI.

Этот промт полезен, когда нужно сразу показать фронтендерам формат данных.

8. Преобразование между ORM и Pydantic

Напиши функцию-хелпер for_serialize(obj), которая принимает SQLAlchemy-модель и превращает её в Pydantic-схему.
Для связи многие-ко-многим загрузи связанные объекты заранее через selectinload.

Помогает избежать ошибок lazy loading при сериализации.

Промты для фоновых задач

9. Базовая фоновая задача

Добавь в приложение фоновую задачу send_welcome_email(user_id).
Вызови её после создания пользователя через BackgroundTasks.
Внутри установи ожидание 2 секунды (имитация отправки). Верни 201 сразу.

Простой промт, но отлично показывает принцип fire-and-forget.

10. Очередь задач через Celery

Создай celery_app.py с конфигурацией для Redis.
Определи задачу process_report(file_path) с retry_backoff=True, max_retries=3.
Напиши FastAPI-эндпоинт, который кладёт задачу в очередь через .delay().

Промт для продакшена. Уточните брокер — Redis или RabbitMQ, чтобы код был корректный.

11. Фоновая задача с прогрессом через WebSocket

Реализуй эндпоинт POST /start-job, который запускает задачу в фоне, и WebSocket /ws/{job_id}.
Используй глобальный store для хранения прогресса. Отправляй клиенту прогресс через WebSocket каждые 10% выполнения.

Это один из самых сложных промтов, но даёт готовую архитектуру для индикаторов выполнения.

12. Планировщик повторяющихся задач

Интегрируй APScheduler в FastAPI: создай периодическую задачу clean_tmp_dir, которая запускается каждую ночь в 3:00.
Добавь запуск планировщика в lifespan приложения и graceful shutdown.

Замена Celery beat, когда нужен простой планировщик без дополнительных сервисов.

Что ещё учесть

Все промты стоит адаптировать под вашу версию FastAPI и Pydantic. Актуальная документация:
- FastAPI Docs
- Pydantic Docs
- Background Tasks
- Celery + FastAPI

Заключение

Эти 12 промтов закрывают большинство ежедневных задач: от простых CRUD-эндпоинтов до фоновой обработки с WebSocket. Держите их под рукой и адаптируйте под свой проект — экономия времени составит не один час. Чтобы закрепить навык, попробуйте на собственном проекте: начните с п.1, а затем постепенно внедряйте фоновые задачи.

Если у вас есть любимые промты для FastAPI — делитесь в комментариях. И не забудьте подписаться на обновления блога: дальше будет подборка для Django и Flask.

← Все статьи

Комментарии

Читайте также

Черный пояс Lean Six Sigma: полное руководство по управлению качеством, которое приносит реальные результаты

31 июля 2026

Умный дом на Zigbee и Z-Wave: как подключить датчики и устройства к AI-агенту ASI Biont для автоматизации без кода

31 июля 2026

FRM — Финансовый риск-менеджер (Часть I + Часть II): Ваша дорожная карта к овладению финансовыми рисками

31 июля 2026

Кейс: Как основательница стартапа защитила своё ИИ-изобретение с помощью курса по интеллектуальной собственности от Asibiont

31 июля 2026

Топ-6 нейронок для генерации сайтов, страниц и иконок в 2026: рейтинг и практический разбор

31 июля 2026

ESP32 + ASI Biont: управляем устройствами через AI-агента — пошаговый гайд с кодом и примерами

31 июля 2026

Arduino Nano BLE Sense и ASI Biont: TinyML + AI-агент = следующий уровень Edge AI

31 июля 2026

Интеграция ClickHouse с ИИ-агентами: автоматизация данных без кода для OLAP в реальном времени

31 июля 2026

Курс AI-инженера полного стека 2026: создание AI-продуктов производственного уровня с помощью LLM, RAG и AI-агентов

31 июля 2026