Cómo construir un servicio API de alto rendimiento con FastAPI

2/20/2026
4 min read

Cómo construir un servicio API de alto rendimiento con FastAPI

FastAPI es un marco web moderno y rápido (eficiente) diseñado para construir APIs. Se basa en las sugerencias de tipo de Python y soporta programación asíncrona, permitiendo a los desarrolladores construir servicios API de alto rendimiento y alta disponibilidad con baja latencia. Este artículo le explicará en detalle cómo usar FastAPI para construir un servicio API de alto rendimiento, y lo haremos paso a paso para ayudarle a realizar todo el proceso desde la configuración del entorno hasta el despliegue.

Primer paso: Preparación del entorno

Necesita asegurarse de que tiene Python 3.6+ instalado en su entorno de desarrollo. Si aún no lo ha instalado, puede visitar la página oficial de Python para descargar e instalar.

Instalación de FastAPI y Uvicorn

FastAPI en sí no proporciona un servicio, necesita un servidor ASGI para alojarlo. Aquí utilizamos Uvicorn, un servidor ASGI de alto rendimiento. Puede instalar FastAPI y Uvicorn usando el siguiente comando:

pip install fastapi uvicorn

Segundo paso: Construir la API básica

Vamos a crear una aplicación FastAPI simple.

Crear el archivo de la aplicación

En su directorio de proyecto, cree un archivo Python, por ejemplo main.py, y luego escriba el siguiente código:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"message": "¡Hola, Mundo!"}

En el código anterior, primero importamos FastAPI y creamos una instancia app. Luego, definimos una ruta GET que devuelve una simple respuesta JSON al acceder a la ruta raíz /.

Iniciar el servidor

Inicie su servidor FastAPI con el siguiente comando:

uvicorn main:app --reload
  • main: se refiere al nombre del archivo, sin la extensión .py.
  • app: se refiere a la instancia de FastAPI.
  • --reload: en modo de desarrollo, reinicia automáticamente el servidor cuando se realizan cambios en los archivos.

Tercer paso: Definir rutas y modelos de datos

Para construir APIs complejas, necesita usar Pydantic para definir modelos de datos.

Crear un modelo de datos

Agregue el siguiente contenido en main.py:

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float
    is_available: bool = True

Este código utiliza Pydantic para crear un modelo de datos Item, que contiene tres atributos: nombre del producto, precio y disponibilidad.

Agregar nuevas rutas

A continuación, podemos definir una nueva ruta POST para recibir datos del tipo Item:

@app.post("/items/")
async def create_item(item: Item):
    return {"item_name": item.name, "item_price": item.price}

En esta ruta, FastAPI validará automáticamente los datos entrantes y los mapeará al modelo Item.

Cuarto paso: Generación automática de documentación

Una de las mayores ventajas de FastAPI es que puede generar automáticamente documentación de la API. Puede acceder a la siguiente dirección para verla:

  • Swagger UI: http://127.0.0.1:8000/docs
  • ReDoc: http://127.0.0.1:8000/redoc

En esta documentación generada, puede probar la API de manera interactiva y ver el formato de solicitud y respuesta de cada ruta.

Quinto paso: Agregar autenticación

En aplicaciones reales, la autenticación es un aspecto importante. Vamos a agregar una autenticación simple basada en roles.

Agregar dependencias de seguridad

Utilice el método Depends de FastAPI y OAuth2PasswordBearer para implementar la autenticación:

from fastapi import Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

async def fake_decode_token(token):
    return {"sub": token}

async def get_current_user(token: str = Depends(oauth2_scheme)):
    user = fake_decode_token(token)
    if user is None:
        raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Credenciales de autenticación no válidas")
    return user

Proteger rutas

Luego, puede agregar autenticación a las rutas que necesitan protección:

@app.get("/users/me")
async def read_users_me(current_user: dict = Depends(get_current_user)):
    return current_user

Sexto paso: Desplegar la aplicación FastAPI

Cuando haya terminado el desarrollo, es posible que desee desplegar la aplicación en un servidor en la nube. Puede optar por usar Docker para el despliegue.

Crear Dockerfile

Cree un archivo llamado Dockerfile en el directorio del proyecto y escriba el siguiente contenido:

FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8

COPY ./app /app

Construir la imagen de Docker

En su terminal, use el siguiente comando para construir la imagen de Docker:

docker build -t myfastapiapp .

Ejecutar el contenedor de Docker

Ejecute su aplicación FastAPI:

docker run -d --name fastapi -p 80:80 myfastapiapp

Resumen

En este artículo, hemos explicado en detalle cómo usar FastAPI para construir un servicio API de alto rendimiento, desde la preparación del entorno hasta la creación de la API básica, la definición de rutas y modelos de datos, y luego la adición de autenticación y el despliegue. FastAPI ofrece muchas funciones poderosas que hacen que construir APIs modernas sea simple y eficiente. Puede explorar más funciones y características a través de la documentación oficial. ¡Esperamos que este artículo le ayude a comenzar más rápido con FastAPI y a mejorar la eficiencia de desarrollo de su proyecto!

Published in Technology

You Might Also Like