# py-fast-api

Правило задаёт стиль для Python-бэкендов на FastAPI: структура маршрутов, валидация через Pydantic и обработка ошибок. Пригодится для новых API и рефакторинга.

- правило · `type=rule` · Cursor · ★ 41024
- Автор: PatrickJS
- Лицензия: CC0-1.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/PatrickJS/awesome-cursorrules/tree/HEAD/rules/py-fast-api.mdc
- Обновлён: 2026-05-30
- HTML: https://affpapa.org/nevibecode/rules/py-fast-api

## Что делает

Правило направляет Cursor при разработке FastAPI-бэкенда. Оно советует использовать обычные функции для синхронного кода и `async def` для операций ввода-вывода, добавлять типы во все сигнатуры и описывать входные данные моделями Pydantic. Для маршрутов предлагаются явные схемы ответа, dependency injection и раздельная структура с роутерами, подмаршрутами, утилитами и моделями.

Отдельный блок посвящён ошибкам: проверки ставятся в начале функции, невалидные состояния обрабатываются через guard clauses и ранний возврат, а неожиданные сбои проходят через middleware с логированием. Для запуска и завершения приложения правило советует lifespan-контекст вместо частого применения `@app.on_event`. В списке зависимостей есть FastAPI, Pydantic v2, асинхронные библиотеки баз данных и SQLAlchemy 2.0 при использовании ORM.

У правила задан шаблон файлов `**/*`, но `alwaysApply: false`, поэтому Cursor не подключает его ко всем запросам автоматически. Без асинхронных операций для запросов к базе и внешним API рекомендации по неблокирующему исполнению не будут соблюдаться.

## Установка

### Cursor (родная платформа)

**Вручную: положить файлы**
- Файл: `.cursor/rules/py-fast-api.mdc` — Во frontmatter: description, globs, alwaysApply

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/rules/py-fast-api.md` — Поле paths во frontmatter ограничивает файлы: globs из источника → paths

### Codex

**AGENTS.md**
- Codex читает AGENTS.md: вставьте текст правила туда

### GitHub Copilot

**Вручную: положить файлы**
- Файл: `.github/instructions/py-fast-api.instructions.md` — Поле applyTo задаёт, к каким файлам применять: globs из источника → applyTo

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/rules/py-fast-api.md`

### Cline

**Вручную: положить файлы**
- Файл: `.clinerules/py-fast-api.md`

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/PatrickJS/awesome-cursorrules/tree/HEAD/rules/py-fast-api.mdc

## Когда брать
- спроектировать структуру FastAPI-маршрутов
- описать входные и выходные схемы через Pydantic
- разнести синхронные и асинхронные операции
- обработать ошибки через ранние возвраты и middleware
- подготовить API к работе с асинхронной базой

## Примеры запросов агенту
- Создай FastAPI-маршрут для управления пользователями с моделями Pydantic и типами ответа.
- Перепиши этот обработчик: вынеси проверки в начало, убери вложенные условия и добавь обработку ошибок.
- Разложи API по роутерам, утилитам и моделям, используя асинхронные вызовы для базы данных.

## Похожие
- [fastapi-python](https://affpapa.org/nevibecode/skills/fastapi-python.md) — скилл · 13900 установок
- [api-scaffolding-fastapi-pro](https://affpapa.org/nevibecode/agents/api-scaffolding-fastapi-pro.md) — субагент · ★ 41823
- [fastapi-development](https://affpapa.org/nevibecode/skills/fastapi-development.md) — скилл · 618 установок
- [python-pro](https://affpapa.org/nevibecode/skills/python-pro.md) — скилл · 399 установок
- [fastapi-developer](https://affpapa.org/nevibecode/agents/fastapi-developer.md) — субагент · ★ 26093
- [viewcomfy-api-rules](https://affpapa.org/nevibecode/skills/viewcomfy-api-rules.md) — скилл · 663 установки

Из того же набора: [patrickjs/awesome-cursorrules](https://affpapa.org/nevibecode/by/patrickjs/awesome-cursorrules.md) — 140 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
