CodeForge

Python de Cero a Experto / Ruta backend

APIs web y FastAPI

Teoría24 min20 XP

Bienvenido a la ruta de BACKEND: crear el "cerebro" que vive en un servidor y responde peticiones —lo que consume una app de React, una app móvil, u otro programa—. Es de los usos más demandados de Python, y su herramienta estrella es FASTAPI: un framework moderno, rapidísimo, que usa los type hints que ya dominas para construir APIs validadas y autodocumentadas con muy poco código. Hoy entiendes qué es una API REST y creas tu primer endpoint.

El mesero entre la app y los datos

APIs REST y HTTP

Tu primera API con FastAPI

Como una API necesita un servidor corriendo (que este entorno del navegador no provee), esta ruta va con bloques —pruébalos tras pip install "fastapi[standard]"—:

main.py
from fastapi import FastAPI

app = FastAPI()

# @app.get define un endpoint que responde a GET en esa ruta
@app.get("/")
def inicio():
  return {"mensaje": "¡API de Mi Bolsillo funcionando!"}

@app.get("/gastos")
def listar_gastos():
  # FastAPI convierte el dict/list a JSON automáticamente
  return [
      {"id": 1, "nombre": "Café", "valor": 4000},
      {"id": 2, "nombre": "Bus", "valor": 2800},
  ]

Se ejecuta con uvicorn (un servidor), y respondes peticiones:

terminal

$ fastapi dev main.py

INFO: Uvicorn running on http://127.0.0.1:8000

# en otra terminal (o el navegador):

$ curl http://127.0.0.1:8000/gastos

[{"id":1,"nombre":"Café","valor":4000},{"id":2,"nombre":"Bus","valor":2800}]

app = FastAPI() crea la aplicación. Cada función decorada con @app.get("/ruta") es un ENDPOINT que responde a peticiones GET en esa ruta —y lo que devuelve (un diccionario o lista) FastAPI lo convierte a JSON automáticamente—. Lo arrancas con fastapi dev main.py (que usa el servidor uvicorn), y ya responde en http://127.0.0.1:8000. Fíjate lo mínimo que es: una función que devuelve datos se vuelve un endpoint web.

La documentación automática

En una API REST, ¿qué determina la URL y qué el método HTTP, y qué hace @app.get('/gastos') en FastAPI?

Mini-reto

Diseña (en tu Python instalado) una API mínima: 1) crea una app FastAPI con un endpoint GET / que devuelva un mensaje de bienvenida; 2) un endpoint GET /gastos que devuelva una lista de diccionarios de gastos; 3) un endpoint GET /saludo que devuelva {"hola": "mundo"}; 4) córrela con fastapi dev y visita /docs para probar tus endpoints desde el navegador. Observa cómo la documentación aparece sola.

Qué sigue

Ya tienes endpoints que devuelven datos fijos. La próxima lección los hace dinámicos con los PARÁMETROS: leer partes variables de la URL (/gastos/5), parámetros de consulta (?categoria=comida), y datos en el cuerpo de la petición —para que tu API responda según lo que le piden—.