Desarrollo Rápido de API con FastAPI en Python
FastAPI es un framework web moderno y rápido para construir APIs con Python 3.6+ basado en las anotaciones de tipos estándar de Python. Es una excelente opción para el desarrollo de APIs RESTful, ya que ofrece una serie de características que lo hacen muy fácil de usar y mantener.
En este tutorial, aprenderemos a crear una API simple con FastAPI.
Prerrequisitos
Para seguir este tutorial, necesitarás:
- Python 3.6+ instalado
- Un editor de texto o IDE
Instalación de FastAPI
Para instalar FastAPI, ejecuta el siguiente comando en la línea de comandos:
pip install fastapi
Creación de un proyecto
Crea una nueva carpeta para tu proyecto y abre una terminal en ella. Luego, crea un archivo llamado main.py
y escribe el siguiente código:
from fastapi import FastAPI
# Crea una instancia de FastAPI
app = FastAPI()
# Define una ruta
@app.get("/")
def hello_world():
return {"message": "Hello, world!"}
# Inicia el servidor
if __name__ == "__main__":
app.run()
Este código crea una API simple que responde a la ruta /
con el mensaje «Hello, world!».
Ejecución de la API
Para ejecutar la API, ejecuta el siguiente comando en la línea de comandos:
uvicorn main:app --reload
Este comando inicia el servidor de desarrollo Uvicorn, que se recargará automáticamente cada vez que se realice un cambio en el código.
Prueba de la API
Para probar la API, abre un navegador web y visita la siguiente URL:
http://localhost:8000
Deberías ver el siguiente mensaje:
{
"message": "Hello, world!"
}
Anotaciones de tipos
FastAPI utiliza anotaciones de tipos para validar los datos que se envían a la API. Esto ayuda a garantizar que la API se use correctamente y que los datos se procesen correctamente.
Por ejemplo, podemos cambiar el código de la ruta /
para que acepte un nombre como parámetro:
from fastapi import FastAPI
# Crea una instancia de FastAPI
app = FastAPI()
# Define una ruta
@app.get("/")
def hello_world(name: str):
return {"message": f"Hello, {name}!"}
# Inicia el servidor
if __name__ == "__main__":
app.run()
Ahora, cuando hacemos una solicitud a la ruta /
, debemos incluir un nombre como parámetro:
curl -X GET "http://localhost:8000?name=John"
Esto devolverá el siguiente mensaje:
{
"message": "Hello, John!"
}
Middlewares
FastAPI también ofrece una serie de middlewares que se pueden utilizar para mejorar el rendimiento y la seguridad de la API.
Por ejemplo, podemos utilizar el middleware CORS
para permitir que las solicitudes desde otros dominios accedan a la API:
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
# Crea una instancia de FastAPI
app = FastAPI()
# Define una ruta
@app.get("/")
def hello_world(name: str):
return {"message": f"Hello, {name}!"}
# Añade el middleware CORS
app.add_middleware(
CORSMiddleware(
allow_origins=["*"],
allow_credentials=True,
allow_methods=["GET", "POST"],
allow_headers=["*"],
)
)
# Inicia el servidor
if __name__ == "__main__":
app.run()
Con este middleware, las solicitudes desde cualquier dominio podrán acceder a la ruta /
.
Conclusión
FastAPI es una excelente opción para el desarrollo de APIs RESTful. Es fácil de usar, ofrece un rendimiento excelente y está lleno de características.
En este tutorial, aprendimos a crear una API simple con FastAPI. También vimos cómo usar anotaciones de tipos y middlewares.