Saltar a contenido

API Router

Si estás construyendo una aplicación o una API web, rara vez se da el caso de que puedas ponerlo todo en un único archivo.

FastAPI proporciona una herramienta práctica para estructurar tu aplicación manteniendo toda la flexibilidad.

Nota

Si vienes de Flask, esto sería el equivalente a los Blueprints de Flask.

En el apartado de Módulos y Recursos, se define la estructura de archivos y carpetas para crear módulos en tu BackEnd.

Al utilizar APIRouter se importa y se crea una "instancia" del mismo modo que se haría con la clase FastAPI, y luego lo usas para declarar los endpoints de tu servicio/módulo, en otras palabras es utilizada para agrupar operaciones de ruta, por ejemplo para estructurar una app en múltiples ficheros, veamos:

from fastapi import APIRouter
...

# definimos nuetro router
my_router = APIRouter()


@my_router.get("/users/", tags=["users"])
async def read_users():
    return [{"username": "Rick"}, {"username": "Morty"}]


@my_router.get("/users/me", tags=["users"])
async def read_user_me():
    return {"username": "fakecurrentuser"}


@my_router.get("/users/{username}", tags=["users"])
async def read_user(username: str):
    return {"username": username}

Puedes pensar en APIRouter como una "mini clase FastAPI" que admite todas las mismas opciones, los mismos parámetros, respuestas, dependencias, etiquetas, etc.

luego se incluye en la aplicación FastAPI, o en otro APIRouter. 😄

Importante

Esta forma de importar routes se detalla en el módulo JSON over POST

1
2
3
4
5
6
7
from fastapi import APIRouter, FastAPI
...

app = FastAPI()

# agregamos nuestro router
app.include_router(my_router)

Lectura recomendada