fastapi-router-py — скилл для Claude Code: установка
Скилл создаёт роутеры FastAPI с CRUD-операциями, аутентификацией и моделями ответов. Пригодится для REST API и новых защищённых маршрутов.
npx skills add microsoft/skills --skill fastapi-router-py -a claude-codeЧто делает fastapi-router-py
fastapi-router-py помогает агенту создавать роутеры FastAPI по заданным шаблонам. Он покрывает CRUD-операции, зависимости для необязательной и обязательной аутентификации, модели ответов и HTTP-статусы. Для шаблона используются имена ресурса в форматах PascalCase и snake_case, а также форма множественного числа.
Скилл предлагает создать роутер в src/backend/app/routers/, подключить его через src/backend/app/main.py, добавить Pydantic-модели и при необходимости слой сервисов. Он также учитывает клиентские API-функции для фронтенда и работу долгоживущих ресурсов через lifespan с внедрением зависимостей.
В обработчике async def нельзя выполнять блокирующий I/O. Для работы с базой данных или HTTP-клиентом скилл советует выбирать def или async def по типу I/O и использовать with либо async with для ресурсов запроса.
Какие задачи решает
- создать FastAPI-роутер для ресурса
- добавить CRUD-операции в REST API
- подключить обязательную аутентификацию через
Depends - задать модели ответов и HTTP-статусы
- вмонтировать новый роутер в
main.py
Примеры запросов агенту
- Создай роутер FastAPI для ресурса Project с CRUD-операциями и моделями ответов.
- Добавь в роутер обязательную аутентификацию через
get_current_user_requiredи верни статусHTTP_201_CREATEDпри создании. - Подключи роутер из
src/backend/app/routers/вsrc/backend/app/main.pyи добавь соответствующие Pydantic-модели.
Как установить fastapi-router-py
1Через Skills CLI (Vercel)
npx skills add microsoft/skills --skill fastapi-router-py -a claude-code2Вручную: положить файлы
~/.claude/skills/fastapi-router-py/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/fastapi-router-py/
Вручную: положить файлы
.agents/skills/fastapi-router-py/SKILL.mdДля всех проектов — ~/.agents/skills/
Вручную: положить файлы
.cursor/skills/fastapi-router-py/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install microsoft/skills fastapi-router-py2Вручную: положить файлы
.github/skills/fastapi-router-py/SKILL.mdКомандой платформы
gemini skills install https://github.com/microsoft/skills --path .github/plugins/azure-sdk-python/skills/fastapi-router-pyВручную: положить файлы
.devin/skills/fastapi-router-py/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о fastapi-router-py
Как установить fastapi-router-py в Claude Code?
Выполните npx skills add microsoft/skills --skill fastapi-router-py -a claude-code, затем используйте файл ~/.claude/skills/fastapi-router-py/SKILL.md.
Что делает fastapi-router-py?
Скилл создаёт FastAPI-роутеры с CRUD-операциями, зависимостями аутентификации, моделями ответов и HTTP-статусами.
Как fastapi-router-py работает с аутентификацией?
Для необязательной аутентификации используется Depends(get_current_user), а для обязательной — Depends(get_current_user_required), который возвращает ошибку 401 без входа.
Исходный текст
SKILL.md · MIT
---
name: fastapi-router-py
description: Create FastAPI routers with CRUD operations, authentication dependencies, and proper response models. Use when building REST API endpoints, creating new routes, implementing CRUD operations, or adding authenticated endpoints in FastAPI applications.
license: MIT
metadata:
author: Microsoft
version: "1.0.0"
---
# FastAPI Router
Create FastAPI routers following established patterns with proper authentication, response models, and HTTP status codes.
## Quick Start
Copy the template from [assets/template.py](assets/template.py) and replace placeholders:
- `{{ResourceName}}` → PascalCase name (e.g., `Project`)
- `{{resource_name}}` → snake_case name (e.g., `project`)
- `{{resource_plural}}` → plural form (e.g., `projects`)
## Authentication Patterns
```python
# Optional auth - returns None if not authenticated
current_user: Optional[User] = Depends(get_current_user)
# Required auth - raises 401 if not authenticated
current_user: User = Depends(get_current_user_required)
```
## Response Models
```python
@router.get("/items/{item_id}", response_model=Item)
async def get_item(item_id: str) -> Item:
...
@router.get("/items", response_model=list[Item])
async def list_items() -> list[Item]:
...
```
## HTTP Status Codes
```python
@router.post("/items", status_code=status.HTTP_201_CREATED)
async def create_item(item: ItemCreate) -> Item:
...
@router.delete("/items/{id}", status_code=status.HTTP_204_NO_CONTENT)
async def delete_item(id: str) -> None:
...
```
## Integration Steps
1. Create router in `src/backend/app/routers/`
2. Mount in `src/backend/app/main.py`
3. Create corresponding Pydantic models
4. Create service layer if needed
5. Add frontend API functions
## Best Practices
1. **Pick `def` or `async def` per endpoint based on whether you call async I/O; do not call blocking I/O from an `async def` handler.**
2. **Manage long-lived resources (DB pools, HTTP clients) in `lifespan` and inject via `Depends`;** use `with`/`async with` for per-request resources.
## Reference Files
| File | Contents |
|------|----------|
| [references/capabilities.md](references/capabilities.md) | Additional non-hero capabilities, operation-group coverage, and production checklists. |
© Microsoft · MIT · microsoft/skills