Construyendo una API Web con Python y FastAPI

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:

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

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

Python
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