Construyendo una API Web con Python y FastAPI
En este tutorial, aprenderemos a construir una API web con Python y FastAPI. FastAPI es un framework de desarrollo web moderno y rápido para Python. Es fácil de aprender y usar, y proporciona una gran cantidad de características que hacen que el desarrollo de APIs sea rápido y sencillo.
Requisitos previos
Para seguir este tutorial, necesitarás tener los siguientes requisitos previos:
- Un editor de texto o IDE de Python
- Python 3.9 o superior
- Pipenv
Instalando FastAPI
Para instalar FastAPI, abre una terminal y ejecuta el siguiente comando:
pip install fastapi
Creando un proyecto FastAPI
Para crear un proyecto FastAPI, crea una nueva carpeta para tu proyecto y ejecuta el siguiente comando:
mkdir mi_proyecto_fastapi
cd mi_proyecto_fastapi
Luego, crea un archivo llamado app.py
y agrega el siguiente código:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def index():
return {"message": "Hello, world!"}
if __name__ == "__main__":
app.run()
Este código crea una API simple que devuelve el mensaje «Hello, world!» cuando se accede a la ruta /
.
Ejecutando la API
Para ejecutar la API, abre una terminal y ejecuta el siguiente comando desde el directorio de tu proyecto:
uvicorn app:app --reload
Este comando ejecuta la API en modo de depuración, lo que significa que se volverá a cargar automáticamente cada vez que se realice un cambio en el código.
Para acceder a la API, abre tu navegador web y navega a la siguiente dirección:
http://localhost:8000
Verás el siguiente mensaje:
{
"message": "Hello, world!"
}
Agregando rutas y métodos
Ahora que tenemos una base sólida, podemos comenzar a agregar más rutas y métodos a nuestra API.
Para agregar una ruta nueva, simplemente agrega una función a la aplicación FastAPI. La función debe tener un decorador @app.get()
o @app.post()
, que indica el método HTTP que se usará para acceder a la ruta.
Por ejemplo, el siguiente código agrega una nueva ruta /users
que devuelve una lista de usuarios:
from fastapi import FastAPI
app = FastAPI()
@app.get("/users")
def get_users():
return [
{"name": "John Doe"},
{"name": "Jane Doe"},
]
if __name__ == "__main__":
app.run()
Para acceder a esta nueva ruta, navega a la siguiente dirección en tu navegador web:
http://localhost:8000/users
Verás la siguiente respuesta:
[
{
"name": "John Doe"
},
{
"name": "Jane Doe"
}
]
Validación de datos
FastAPI proporciona una forma sencilla de validar los datos que se reciben de las solicitudes HTTP. Para validar los datos, simplemente agrega un decorador @app.param()
a la función que recibe los datos.
Por ejemplo, el siguiente código agrega una validación a la ruta /users
para asegurarse de que el nombre del usuario sea una cadena de caracteres:
from fastapi import FastAPI
app = FastAPI()
@app.get("/users")
def get_users(name: str):
return [
{"name": name},
]
if __name__ == "__main__":
app.run()
Si intentas acceder a esta ruta con un valor que no sea una cadena de caracteres, recibirás un error de validación:
{
"detail": "The `name` field must be a string."
}
Documentación
FastAPI genera automáticamente una documentación de la API. Para acceder a la documentación, navega a la siguiente dirección en tu navegador web:
http://localhost:8000/docs
La documentación incluye información sobre las rutas, los métodos y los parámetros de la API.
Conclusión
En este tutorial, aprendimos a construir una API web con Python y Fast