Saltar al contenido

Parámetros Cookie

Puedes definir parámetros Cookie de la misma manera que defines parámetros Query y Path.

Primero importa Cookie:

from typing import Annotated

from fastapi import Cookie, FastAPI

app = FastAPI()


@app.get("/items/")
async def read_items(ads_id: Annotated[str | None, Cookie()] = None):
    return {"ads_id": ads_id}
🤓 Otras versiones y variantes

Consejo

Preferible usar la versión con Annotated si es posible.

from fastapi import Cookie, FastAPI

app = FastAPI()


@app.get("/items/")
async def read_items(ads_id: str | None = Cookie(default=None)):
    return {"ads_id": ads_id}

Luego declara los parámetros cookie usando la misma estructura que con Path y Query.

Puedes definir el valor por defecto así como todos los parámetros extra de validación o anotación:

from typing import Annotated

from fastapi import Cookie, FastAPI

app = FastAPI()


@app.get("/items/")
async def read_items(ads_id: Annotated[str | None, Cookie()] = None):
    return {"ads_id": ads_id}
🤓 Otras versiones y variantes

Consejo

Preferible usar la versión con Annotated si es posible.

from fastapi import Cookie, FastAPI

app = FastAPI()


@app.get("/items/")
async def read_items(ads_id: str | None = Cookie(default=None)):
    return {"ads_id": ads_id}

Detalles Técnicos

Cookie es una clase "hermana" de Path y Query. También hereda de la misma clase común Param.

Pero recuerda que cuando importas Query, Path, Cookie y otros desde fastapi, esos son en realidad funciones que devuelven clases especiales.

Nota

Para declarar cookies, necesitas usar Cookie, porque de lo contrario los parámetros serían interpretados como parámetros de query.

Nota

Ten en cuenta que, como los navegadores manejan las cookies de maneras especiales y detrás de escenas, no permiten fácilmente que JavaScript las toque.

Si vas a la interfaz de documentación de la API en /docs podrás ver la documentación de las cookies para tus path operations.

Pero incluso si rellenas los datos y haces clic en "Execute", como la interfaz de documentación funciona con JavaScript, las cookies no se enviarán, y verás un mensaje de error como si no hubieras escrito ningún valor.

Resumen

Declara cookies con Cookie, usando el mismo patrón común que Query y Path.