Entrada

FastAPI en Python: qué es, para qué sirve y cómo empezar paso a paso

FastAPI en Python: primeras impresiones y puesta en marcha 🚀

Llevo un tiempo trasteando con Python más allá de scripts sueltos, y tarde o temprano acabas llegando a un punto: necesitas montar una API.

Ahí es donde aparece FastAPI, un framework que últimamente no deja de salir en conversaciones, comparativas y ofertas de empleo.

👉 Documentación oficial: https://fastapi.tiangolo.com/

👉 Web del proyecto: https://fastapi.tiangolo.com/


¿Qué es FastAPI? 🤔

FastAPI es un framework moderno para construir APIs con Python basado en estándares como ASGI1 y aprovechando al máximo los type hints.

Su objetivo es bastante claro: 👉 hacer APIs rápidas, fáciles de escribir y bien documentadas desde el minuto uno.

Y lo curioso es que cumple las tres cosas.

1Asynchronous Server Gateway Interface.

Es una especificación (una especie de “contrato”) que define cómo se comunican un servidor web y una aplicación Python, especialmente cuando hay procesos asíncronos de por medio.

La idea rápida 🧠 WSGI → modelo antiguo (sincrónico) ASGI → modelo moderno (asíncrono)

ASGI es, básicamente, la evolución necesaria para poder manejar:

  • múltiples peticiones al mismo tiempo ⚡
  • websockets (tiempo real)
  • tareas no bloqueantes

¿Para qué sirve realmente?

El caso de uso más habitual es este:

  • Crear APIs REST
  • Backend para aplicaciones web (React, Vue, etc.)
  • Microservicios
  • Prototipos rápidos que luego pueden escalar

Un ejemplo muy típico: tienes una app en React y necesitas un backend que gestione usuarios, datos, autenticación… FastAPI encaja perfectamente ahí.


¿Por qué tanta gente habla de FastAPI? ⚡

Después de probarlo, se entienden varias cosas:

1. Es muy rápido (de verdad)

Está basado en Starlette y Pydantic, y funciona sobre ASGI, lo que permite concurrencia eficiente.

2. Usa tipado de Python (y lo aprovecha)

Esto cambia bastante la experiencia.

1
2
3
4
5
6
7
from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
def read_item(item_id: int):
    return {"item_id": item_id}

Solo con esto:

  • Valida que item_id sea un entero
  • Genera documentación automática
  • Te da autocompletado en el editor

3. Documentación automática (esto es una locura)

Nada más levantar el servidor tienes:

  • /docs → Swagger UI
  • /redoc → Documentación alternativa
documentacion automatica fastapi swagger ejemplo

No tienes que escribir nada extra. Sale directamente del código.


¿En qué mejora la programación con Python? 🧠

Aquí es donde más me ha llamado la atención.

Código más claro

El uso de tipos hace que todo sea más explícito:

1
2
3
4
5
6
7
from fastapi import FastAPI

app = FastAPI()

@app.get("/users/")
def get_users(limit: int = 10):
    return {"limit": limit}

Ya sabes qué espera la función sin leer documentación adicional.


Validación automática

Con Pydantic puedes definir esquemas así:

1
2
3
4
5
from pydantic import BaseModel

class User(BaseModel):
    name: str
    age: int

Y FastAPI:

  • Valida datos de entrada
  • Devuelve errores claros si algo falla
  • Convierte tipos automáticamente

Menos código repetitivo

Comparado con otros frameworks, hay menos “pegamento” que escribir.

menos codigo mas productividad desarrollo python fastapi

Instalación paso a paso 🛠️

Aquí no hay mucha historia, pero lo dejo anotado.

1. Crear entorno virtual (recomendado)

1
2
3
python -m venv venv
source venv/bin/activate  # Linux / Mac
venv\Scripts\activate     # Windows

2. Instalar FastAPI y servidor

1
pip install fastapi uvicorn

3. Crear tu primera app

Archivo main.py:

1
2
3
4
5
6
7
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"mensaje": "Hola mundo"}

4. Ejecutar el servidor

1
uvicorn main:app --reload

Y listo:


Un ejemplo un poco más real 🧪

Algo típico: recibir datos en POST.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Producto(BaseModel):
    nombre: str
    precio: float

@app.post("/productos/")
def crear_producto(producto: Producto):
    return {
        "mensaje": "Producto creado",
        "producto": producto
    }

Aquí ya estás:

  • Recibiendo JSON
  • Validando datos
  • Devolviendo respuesta estructurada

Sin apenas esfuerzo.


Sensaciones después de probarlo

La curva de entrada es muy suave si ya conoces Python.

Lo que más se nota:

  • Menos tiempo configurando cosas
  • Más tiempo construyendo lógica real
  • Código más limpio

Y sobre todo, la sensación de que todo “encaja” bastante bien desde el principio.


Comparativa rápida mental 🧩

Sin entrar en guerras:

  • Flask → minimalista, más manual
  • Django → completo, más pesado
  • FastAPI → equilibrio moderno, rápido y tipado

Si estás empezando a hacer backend con Python o vienes de montar APIs con otras herramientas, merece bastante la pena darle una vuelta.


❓ FAQ

¿Qué es FastAPI en Python?

FastAPI es un framework moderno para crear APIs con Python de forma rápida, eficiente y con validación automática de datos usando type hints.

¿Para qué sirve FastAPI?

Se utiliza principalmente para desarrollar APIs REST y servicios backend de alto rendimiento, especialmente en aplicaciones modernas que requieren rapidez y escalabilidad.

¿Es mejor FastAPI que Flask o Django?

Depende del caso. FastAPI destaca por su velocidad, tipado y documentación automática, mientras que Flask es más simple y Django más completo como framework full-stack.

¿Cómo se instala FastAPI?

Se instala con pip usando el comando 'pip install fastapi uvicorn' y se ejecuta con un servidor ASGI como Uvicorn.

Esta entrada está licenciada bajo CC BY 4.0 por el autor.