Desarrollo Rápido de API con FastAPI en Python

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:

Python
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:

JSON
{
    "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:

Python
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:

JSON
{
    "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:

Python
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.