API REST de tareas con autenticacion basica, CRUD completo, base de datos SQLite y documentacion Swagger automatica. Lista para desplegar en Render.
- CRUD completo de tareas (crear, listar, obtener, actualizar, eliminar)
- Autenticacion basica por usuario/contraseña
- Base de datos SQLite (intercambiable por PostgreSQL)
- Documentacion interactiva con Swagger UI y ReDoc
- Filtro de tareas por estado (completadas/pendientes)
- Endpoint de health check
- Arquitectura modular y limpia
| Metodo | Ruta | Auth | Descripcion |
|---|---|---|---|
| GET | / |
No | Informacion de la API |
| GET | /health |
No | Health check |
| GET | /docs |
No | Swagger UI |
| POST | /todos |
Basic | Crear tarea |
| GET | /todos |
Basic | Listar tareas |
| GET | /todos?completed=true |
Basic | Filtrar por completadas |
| GET | /todos/{id} |
Basic | Obtener tarea por ID |
| PUT | /todos/{id} |
Basic | Actualizar tarea |
| DELETE | /todos/{id} |
Basic | Eliminar tarea |
git clone https://github.com/Litios0912/fastapi-todo-api.git
cd fastapi-todo-api
pip install -r requirements.txt
uvicorn main:app --reloadAbrir http://localhost:8000/docs para la documentacion interactiva.
| Usuario | Contraseña |
|---|---|
admin |
admin123 |
user |
user123 |
# Crear tarea
curl -u admin:admin123 -X POST http://localhost:8000/todos \
-H "Content-Type: application/json" \
-d '{"title": "Aprender FastAPI", "description": "Hacer el tutorial oficial"}'
# Listar tareas
curl -u admin:admin123 http://localhost:8000/todos
# Listar solo completadas
curl -u admin:admin123 "http://localhost:8000/todos?completed=true"
# Actualizar tarea
curl -u admin:admin123 -X PUT http://localhost:8000/todos/1 \
-H "Content-Type: application/json" \
-d '{"completed": true}'
# Eliminar tarea
curl -u admin:admin123 -X DELETE http://localhost:8000/todos/1- Crear Web Service en render.com
- Conectar este repositorio
- Build command:
pip install -r requirements.txt - Start command:
uvicorn main:app --host=0.0.0.0 --port=$PORT - Opcional: agregar
DATABASE_URLpara usar PostgreSQL en vez de SQLite
| Variable | Default | Descripcion |
|---|---|---|
DATABASE_URL |
sqlite:///./todos.db |
URL de base de datos |
MIT