Spaces:
Sleeping
Sleeping
| title: Mi API Completa con FastAPI | |
| emoji: 🚀 | |
| colorFrom: blue | |
| colorTo: green | |
| sdk: docker | |
| app_port: 7860 | |
| # 🚀 Mi API Completa con FastAPI | |
| Este es un Space de demostración para una API creada con FastAPI que incluye todos los métodos HTTP comunes. | |
| La API se ejecuta dentro de un contenedor Docker y te permite gestionar una lista de ítems. | |
| ## Documentación Interactiva de la API | |
| FastAPI genera automáticamente una documentación interactiva. Puedes acceder a ella agregando `/docs` a la URL de este Space. | |
| - **Swagger UI**: [URL_DE_TU_SPACE/docs](URL_DE_TU_SPACE/docs) | |
| - **ReDoc**: [URL_DE_TU_SPACE/redoc](URL_DE_TU_SPACE/redoc) | |
| ## Cómo usar los Endpoints | |
| Puedes usar `curl` o cualquier cliente HTTP para interactuar con la API. Reemplaza `URL_DE_TU_SPACE` con la URL de tu aplicación. | |
| ### `GET /items` - Obtener todos los ítems | |
| ```bash | |
| curl -X 'GET' 'URL_DE_TU_SPACE/items' -H 'accept: application/json' | |
| ``` | |
| ### POST /items - Crear un nuevo ítem | |
| ```bash | |
| curl -X 'POST' \ | |
| 'URL_DE_TU_SPACE/items' \ | |
| -H 'accept: application/json' \ | |
| -H 'Content-Type: application/json' \ | |
| -d '{ | |
| "id": 3, | |
| "name": "Monitor Ultrawide", | |
| "description": "Un monitor de 34 pulgadas", | |
| "price": 499.99 | |
| }' | |
| ``` | |
| ### GET /items/{item_id} - Obtener un ítem por ID | |
| ```bash | |
| curl -X 'GET' 'URL_DE_TU_SPACE/items/1' -H 'accept: application/json' | |
| PUT /items/{item_id} - Actualizar un ítem completamente | |
| Bash | |
| curl -X 'PUT' \ | |
| 'URL_DE_TU_SPACE/items/1' \ | |
| -H 'accept: application/json' \ | |
| -H 'Content-Type: application/json' \ | |
| -d '{ | |
| "id": 1, | |
| "name": "Laptop Gamer", | |
| "description": "Un potente portátil con RTX 4080", | |
| "price": 2500.00 | |
| }' | |
| ``` | |
| ### DELETE /items/{item_id} - Eliminar un ítem | |
| ```bash | |
| curl -X 'DELETE' 'URL_DE_TU_SPACE/items/2' -H 'accept: application/json' | |
| ``` | |
| ### Cómo Subirlo a Hugging Face Spaces | |
| 1. **Crea una cuenta** en [Hugging Face](https://huggingface.co/). | |
| 2. Ve a tu perfil y haz clic en **"New Space"**. | |
| 3. Dale un **nombre** a tu Space (por ejemplo, `mi-api-fastapi`). | |
| 4. Elige una **licencia**. | |
| 5. Selecciona **"Docker"** como el SDK del Space. | |
| 6. Haz clic en **"Create Space"**. | |
| 7. Sigue las instrucciones para subir tus archivos. La forma más sencilla es: | |
| * Ir a la pestaña **"Files and versions"**. | |
| * Hacer clic en **"Add file"** y luego **"Upload files"**. | |
| * Arrastra y suelta los cuatro archivos (`main.py`, `requirements.txt`, `Dockerfile`, `README.md`) que creaste. | |
| * Escribe un mensaje de commit (ej. "Versión inicial") y haz clic en **"Commit changes to main"**. | |
| Hugging Face detectará tu `Dockerfile` y `README.md`, construirá la imagen y desplegará tu aplicación. ¡En unos minutos, tu API estará en línea y lista para usar! | |
| ### Probar en el local | |
| python -m venv venv | |
| .\venv\Scripts\Activate.ps1 | |
| pip install -r requirements.txt | |
| uvicorn main:app --reload | |
| http://127.0.0.1:8000/docs | |
| ### Docker | |
| docker build -t my_fast_api . | |
| docker run -d -p 8000:8000 --name mi-api-container my_fast_api | |
| http://127.0.0.1:8000/docs | |
| http://127.0.0.1:8000/items |