File size: 3,056 Bytes
919b215
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e410613
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
---
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