Parámetros de Cookie¶
Puedes definir parámetros de Cookie de la misma manera que defines los parámetros Query y Path.
Importar Cookie¶
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}
🤓 Other versions and variants
from typing import Annotated, Union
from fastapi import Cookie, FastAPI
app = FastAPI()
@app.get("/items/")
async def read_items(ads_id: Annotated[Union[str, None], Cookie()] = None):
return {"ads_id": ads_id}
Tip
Prefer to use the Annotated version if possible.
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}
Tip
Prefer to use the Annotated version if possible.
from typing import Union
from fastapi import Cookie, FastAPI
app = FastAPI()
@app.get("/items/")
async def read_items(ads_id: Union[str, None] = Cookie(default=None)):
return {"ads_id": ads_id}
Declarar parámetros de Cookie¶
Luego declara los parámetros de cookie usando la misma estructura que con Path y Query.
Puedes definir el valor por defecto así como toda la validación extra o los parámetros de 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}
🤓 Other versions and variants
from typing import Annotated, Union
from fastapi import Cookie, FastAPI
app = FastAPI()
@app.get("/items/")
async def read_items(ads_id: Annotated[Union[str, None], Cookie()] = None):
return {"ads_id": ads_id}
Tip
Prefer to use the Annotated version if possible.
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}
Tip
Prefer to use the Annotated version if possible.
from typing import Union
from fastapi import Cookie, FastAPI
app = FastAPI()
@app.get("/items/")
async def read_items(ads_id: Union[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, en realidad son funciones que devuelven clases especiales.
Información
Para declarar cookies, necesitas usar Cookie, porque de lo contrario los parámetros serían interpretados como parámetros de query.
Información
Ten en cuenta que, como los navegadores manejan las cookies de formas especiales y por detrás, no permiten fácilmente que JavaScript las toque.
Si vas a la UI de la documentación de la API en /docs podrás ver la documentación de cookies para tus path operations.
Pero incluso si rellenas los datos y haces clic en "Execute", como la UI de la 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.