Rutas básicas de FastAPI

En FastAPI, las rutas básicas son clave para definir los endpoints de la API.

Cada ruta se asigna a una función en la aplicación para manejar solicitudes HTTP específicas y devolver las respuestas correspondientes.

Ruta raíz

Crear una instancia de FastAPI y una ruta raíz:

Ejemplo

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

Explicación del código:

  • FastAPI(): Crear una instancia de la aplicación FastAPI.
  • @app.get("/"): Usar el@app.getdecorador para crear una ruta que maneja la ruta raíz.
  • def read_root(): Función de manejo de la ruta, devuelve un diccionario que contiene {"Hello": "World"}.

Parámetros de ruta

Configurar los parámetros de la ruta:

Ejemplo

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

Explicación del código:

  • @app.get("/items/{item_id}"): Se define una ruta, donde{item_id}es el parámetro de la ruta, que corresponde al parámetro de la funciónitem_id。
  • def read_item(item_id: int, q: str = None): La función de manejo de la ruta acepta un parámetro de ruta de tipo enteroitem_idy un parámetro de consulta opcional de tipo cadenaq。

En las operaciones de ruta, se pueden declarar parámetros de consulta usando parámetros de función. Por ejemplo,q: str = Noneindica queqes un parámetro de consulta opcional de tipo cadena, con valor predeterminadoNone。

Iniciar la aplicación y probar rutas

Iniciar la aplicación con Uvicorn:

uvicorn main:app --reload

Visitarhttp://127.0.0.1:8000para ver la respuesta de la ruta raíz:

Visitar http://127.0.0.1:8000/items/42?q=ejemplo para ver la respuesta con parámetros de ruta y de consulta:

La documentación interactiva de API generada automáticamente por FastAPI incluirá la información de rutas definidas, parámetros de ruta, parámetros de consulta, etc. Visitar la dirección de la documentaciónhttp://127.0.0.1:8000/docspara ver la documentación detallada y la interfaz de prueba:

Otras extensiones