Inicio rápido
¡Crea tu primer proyecto FastAPI con FastAPI-fastkit en menos de 5 minutos!
¿No sabes qué starter elegir?
Mira ¿Qué starter elegir? para ver una comparación pensada para principiantes entre las plantillas de startdemo y los presets de arquitectura interactivos (minimal / single-module / classic-layered / domain-starter). En resumen: fastkit init --interactive con el preset domain-starter es la opción moderna recomendada.
1. Crear el proyecto
Usa el comando init de FastAPI-fastkit para crear un proyecto nuevo:
$ fastkit init
Enter the project name: my-first-app
Enter the author name: Your Name
Enter the author email: your.email@example.com
Enter the project description: My first FastAPI application
Project Information
┌──────────────┬─────────────────────────────┐
│ Project Name │ my-first-app │
│ Author │ Your Name │
│ Author Email │ your.email@example.com │
│ Description │ My first FastAPI application│
└──────────────┴─────────────────────────────┘
Available Stacks and Dependencies:
MINIMAL Stack
┌──────────────┬───────────────────┐
│ Dependency 1 │ fastapi │
│ Dependency 2 │ uvicorn │
│ Dependency 3 │ pydantic │
│ Dependency 4 │ pydantic-settings │
└──────────────┴───────────────────┘
STANDARD Stack
┌──────────────┬───────────────────┐
│ Dependency 1 │ fastapi │
│ Dependency 2 │ uvicorn │
│ Dependency 3 │ sqlalchemy │
│ Dependency 4 │ alembic │
│ Dependency 5 │ pytest │
│ Dependency 6 │ pydantic │
│ Dependency 7 │ pydantic-settings │
└──────────────┴───────────────────┘
FULL Stack
┌──────────────┬───────────────────┐
│ Dependency 1 │ fastapi │
│ Dependency 2 │ uvicorn │
│ Dependency 3 │ sqlalchemy │
│ Dependency 4 │ alembic │
│ Dependency 5 │ pytest │
│ Dependency 6 │ redis │
│ Dependency 7 │ celery │
│ Dependency 8 │ pydantic │
│ Dependency 9 │ pydantic-settings │
└──────────────┴───────────────────┘
Select stack (minimal, standard, full): minimal
Available Package Managers:
Package Managers
┌────────┬────────────────────────────────────────────┐
│ PIP │ Standard Python package manager │
│ UV │ Fast Python package manager │
│ PDM │ Modern Python dependency management │
│ POETRY │ Python dependency management and packaging │
└────────┴────────────────────────────────────────────┘
Select package manager (pip, uv, pdm, poetry) [uv]: uv
Do you want to proceed with project creation? [y/N]: y
✨ FastAPI project 'my-first-app' has been created successfully!
2. Activar el entorno virtual
Entra en el directorio del proyecto y activa el entorno virtual:
3. Iniciar el servidor de desarrollo
Arranca el servidor de desarrollo de FastAPI:
¡Enhorabuena!
¡Tu servidor FastAPI está en marcha! Ábrelo en el navegador para comprobarlo.
4. Probar la API
Abre estas URLs en tu navegador:
Endpoint principal
Entra en http://127.0.0.1:8000 y verás:
Documentación interactiva de la API
Visita http://127.0.0.1:8000/docs.
Es la documentación Swagger UI generada automáticamente, donde puedes:
- Ver todos los endpoints de la API
- Probar endpoints directamente desde el navegador
- Consultar los esquemas de petición / respuesta
Documentación alternativa
Visita http://127.0.0.1:8000/redoc.
Es la interfaz de documentación ReDoc, con un diseño distinto y limpio.
5. Añadir tu primera ruta
Vamos a añadir una nueva ruta a la API del proyecto:
$ fastkit addroute users my-first-app
Adding New Route
┌──────────────────┬──────────────────────────────────────────┐
│ Project │ my-first-app │
│ Route Name │ users │
│ Target Directory │ ~/my-first-app │
└──────────────────┴──────────────────────────────────────────┘
Do you want to add route 'users' to project 'my-first-app'? [Y/n]: y
╭──────────────────────── Info ────────────────────────╮
│ ℹ Updated main.py to include the API router │
╰──────────────────────────────────────────────────────╯
╭─────────────────────── Success ───────────────────────╮
│ ✨ Successfully added new route 'users' to project │
│ `my-first-app` │
╰───────────────────────────────────────────────────────╯
El servidor se recargará automáticamente y ahora tendrás nuevos endpoints:
GET /api/v1/users/- Obtener todos los usuariosPOST /api/v1/users/- Crear un usuario nuevoGET /api/v1/users/{user_id}- Obtener un usuario concretoPUT /api/v1/users/{user_id}- Actualizar un usuarioDELETE /api/v1/users/{user_id}- Eliminar un usuario
6. Probar la nueva API
Con curl
Obtener todos los usuarios:
Crear un usuario nuevo:
Con la documentación interactiva
- Entra en http://127.0.0.1:8000/docs.
- Despliega la sección "users".
- Pulsa "POST /api/v1/users/".
- Pulsa "Try it out".
- Rellena el cuerpo de la petición:
- Pulsa "Execute".
7. Explorar la estructura del proyecto
El proyecto generado tiene una estructura limpia y ordenada:
my-first-app/
├── .venv/ # Entorno virtual
├── src/
│ ├── __init__.py
│ ├── main.py # Punto de entrada de la app FastAPI
│ ├── core/
│ │ ├── __init__.py
│ │ └── config.py # Configuración de la app
│ ├── api/
│ │ ├── __init__.py
│ │ ├── api.py # Conjunto de routers de la API
│ │ └── routes/
│ │ ├── __init__.py
│ │ ├── items.py # Ruta por defecto items
│ │ └── users.py # Ruta users recién añadida
│ ├── crud/
│ │ ├── __init__.py
│ │ ├── items.py # Operaciones CRUD para items
│ │ └── users.py # Operaciones CRUD para users
│ ├── schemas/
│ │ ├── __init__.py
│ │ ├── items.py # Esquemas Pydantic para items
│ │ └── users.py # Esquemas Pydantic para users
│ └── mocks/
│ ├── __init__.py
│ └── mock_items.json # Datos de prueba
├── tests/ # Archivos de pruebas
├── scripts/ # Scripts de utilidades
├── requirements.txt # Dependencias de Python
├── setup.py # Configuración del paquete
└── README.md # Documentación del proyecto
8. Opciones de gestor de paquetes
FastAPI-fastkit soporta varios gestores de paquetes de Python a tu gusto:
Gestores disponibles
| Gestor | Descripción | Recomendado para |
|---|---|---|
| UV | Gestor rápido de paquetes Python (por defecto) | Velocidad y rendimiento |
| PDM | Gestión moderna de dependencias Python | Resolución avanzada de dependencias |
| Poetry | Gestión de dependencias y empaquetado Python | Flujos basados en Poetry |
| PIP | Gestor estándar de paquetes Python | Desarrollo tradicional en Python |
Especificar el gestor de paquetes
Puedes especificar tu gestor preferido de varias maneras:
1. Selección interactiva (por defecto)
Al ejecutar fastkit init o fastkit startdemo aparece un prompt:
$ fastkit init
# ... tras la info del proyecto y la selección de stack ...
Available Package Managers:
Package Managers
┌────────┬────────────────────────────────────────────┐
│ PIP │ Standard Python package manager │
│ UV │ Fast Python package manager │
│ PDM │ Modern Python dependency management │
│ POETRY │ Python dependency management and packaging │
└────────┴────────────────────────────────────────────┘
Select package manager (pip, uv, pdm, poetry) [uv]: uv
2. Opción de línea de comandos
Sáltate el prompt interactivo indicando el gestor directamente:
Archivos de dependencias generados
Cada gestor genera los archivos de dependencias adecuados:
- UV/PDM:
pyproject.toml(formato PEP 621) - Poetry:
pyproject.toml(formato Poetry) - PIP:
requirements.txt
9. Próximos pasos
¡Enhorabuena! Has conseguido todo lo siguiente:
✅ Crear tu primer proyecto FastAPI ✅ Arrancar el servidor de desarrollo ✅ Añadir una ruta nueva a la API ✅ Probar la API
Seguir aprendiendo
- Tu primer proyecto: Construye una API de blog más completa
- Crear proyectos: Aprende los distintos stacks y opciones
- Añadir rutas: Domina el desarrollo de la API
- Usar plantillas: Explora plantillas de proyecto ya preparadas
Experimenta un poco más
Prueba estos comandos para explorar más funcionalidades:
Consejos de desarrollo
- El servidor se reinicia automáticamente cuando cambias archivos
- Comprueba la documentación interactiva en
/docscada vez que añadas algo nuevo - Usa el entorno virtual para mantener aisladas las dependencias
- Lee el código generado para entender la estructura del proyecto