Saltar a contenido

Parámetros de Cookie

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

Primero importa Cookie:

from typing import Annotated

from readyapi import Cookie, ReadyAPI

app = ReadyAPI()


@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 readyapi import Cookie, ReadyAPI

app = ReadyAPI()


@app.get("/items/")
async def read_items(ads_id: Annotated[Union[str, None], Cookie()] = None):
    return {"ads_id": ads_id}
from typing import Union

from readyapi import Cookie, ReadyAPI
from typing_extensions import Annotated

app = ReadyAPI()


@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 readyapi import Cookie, ReadyAPI

app = ReadyAPI()


@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 readyapi import Cookie, ReadyAPI

app = ReadyAPI()


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

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 readyapi import Cookie, ReadyAPI

app = ReadyAPI()


@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 readyapi import Cookie, ReadyAPI

app = ReadyAPI()


@app.get("/items/")
async def read_items(ads_id: Annotated[Union[str, None], Cookie()] = None):
    return {"ads_id": ads_id}
from typing import Union

from readyapi import Cookie, ReadyAPI
from typing_extensions import Annotated

app = ReadyAPI()


@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 readyapi import Cookie, ReadyAPI

app = ReadyAPI()


@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 readyapi import Cookie, ReadyAPI

app = ReadyAPI()


@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 readyapi, 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.

Resumen

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