Saltar a contenido

fastapi-basekit

Construye APIs FastAPI listas para producción en minutos — repos, services, controllers, paginación, JWT y migrations ya resueltos. Multi-ORM (SQLAlchemy · SQLModel · Beanie).

PyPI Python FastAPI SQLAlchemy Beanie License

¿Por qué fastapi-basekit?

Cada proyecto FastAPI repite lo mismo: paginación, filtros, búsqueda, soft delete, JWT middleware, exception handlers, alembic env. basekit lo trae resuelto en clases base que extiendes.

  •   Inicio en minutos


    basekit init genera proyecto completo: app/, alembic, docker-compose, Makefile, JWT, seed admin. Listo en 1 comando.

    Primeros pasos

  •   Multi-ORM


    SQLAlchemy 2.0 async, SQLModel y Beanie (MongoDB) con la misma API: Repository + Service + Controller.

    Repositories

  •   Auth incluido


    JWT middleware, BasePermission classes async, request.state.user resuelto una vez por request.

    Permisos

  •   Filtros + paginación


    ?page=1&count=10&search=foo&order_by=-created_at listo en cada controller, sin escribir SQL.

    Paginación

  •   Convenciones probadas


    Patrón usado en producción en axion_accounter, pulbot, fluxio, swapdealer. Battle-tested.

    Convenciones

  •   Plugin Claude Code


    La skill fastapi-basekit-crud enseña el patrón a Claude para que scaffolde recursos automáticamente.

    Instalar plugin

Quickstart

pip install fastapi-basekit[init]
basekit init                    # cookiecutter prompts
cd <project_slug>
cp .env.example .env
make up-d
make migrate-create && make migrate-up
make seed

Visita http://localhost:8000/docs y entra con admin@example.com / ChangeMe2026!.

Arquitectura

flowchart LR
    R[Request] --> M[AuthenticationMiddleware]
    M --> C[@cbv Controller]
    C --> S[BaseService]
    S --> Repo[BaseRepository]
    Repo --> DB[(Database)]
    DB -.-> Repo
    Repo -.-> S
    S -.-> C
    C --> F[format_response]
    F --> Resp[BaseResponse]
    style C fill:#009485,color:#fff
    style S fill:#00b89c,color:#fff
    style Repo fill:#00d4b8,color:#003a35
Capa Responsabilidad Hooks útiles
Controller Validar params, permisos, schema response get_schema_class(), check_permissions()
Service Lógica de negocio, scoping get_filters(), get_kwargs_query()
Repository Queries, soft-delete filter build_list_queryset()

Conoce el patrón completo CRUD básico paso a paso