# Fastapi Endpoint

> Creates FastAPI endpoints following DataPilot conventions. Use when creating new API routes, routers, or endpoint functions in the backend.

- Skill: `tomevault-io/fastapi-endpoint-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/fastapi-endpoint-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/fastapi-endpoint-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/fastapi-endpoint-2

---


# FastAPI Endpoint — DataPilot Conventions

## Structure obligatoire

Tout endpoint doit suivre ce pattern :
1. Router dans `app/routers/<resource>.py`
2. Logique métier dans `app/services/<resource>_service.py`
3. Schemas Pydantic dans `app/schemas/<resource>.py`
4. Model SQLAlchemy dans `app/models/<resource>.py`

## Règles critiques
- TOUJOURS filtrer par `current_user.tenant_id` (multi-tenant obligatoire)
- TOUJOURS typer les paramètres et le retour
- TOUJOURS utiliser les dépendances via `app/core/dependencies.py`
- Préfixe API : `/api/v1/<resource>`

## Template endpoint
```python
@router.get("/{id}", response_model=ResourceSchema)
async def get_resource(
    id: UUID,
    current_user: User = Depends(get_current_user),
    db: Session = Depends(get_db)
):
    service = ResourceService(db)
    return service.get_by_id(id, tenant_id=current_user.tenant_id)
```

## Checklist avant de valider
- [ ] tenant_id filtré
- [ ] Schema Pydantic défini
- [ ] Route enregistrée dans main.py
- [ ] Test unitaire créé

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/lucaszub) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-14 -->

