Parâmetros de Cookie¶
Você pode definir parâmetros de Cookie da mesma maneira que define parâmetros com Query e Path.
Importe Cookie¶
Primeiro importe 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}
from typing import Union
from fastapi import Cookie, FastAPI
from typing_extensions import Annotated
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}
Declare parâmetros de Cookie¶
Então declare os parâmetros de cookie usando a mesma estrutura que em Path e Query.
Você pode definir o valor padrão, assim como todas as validações extras ou parâmetros de anotação:
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}
from typing import Union
from fastapi import Cookie, FastAPI
from typing_extensions import Annotated
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}
Detalhes Técnicos
Cookie é uma classe "irmã" de Path e Query. Ela também herda da mesma classe em comum Param.
Mas lembre-se que quando você importa Query, Path, Cookie e outras de fastapi, elas são na verdade funções que retornam classes especiais.
Informação
Para declarar cookies, você precisa usar Cookie, pois caso contrário, os parâmetros seriam interpretados como parâmetros de consulta.
Informação
Tenha em mente que, como os navegadores lidam com cookies de maneiras especiais e nos bastidores, eles não permitem facilmente que o JavaScript os acesse.
Se você for à interface de documentação da API em /docs, poderá ver a documentação de cookies para suas operações de rota.
Mas mesmo que você preencha os dados e clique em "Execute", como a interface de documentação funciona com JavaScript, os cookies não serão enviados e você verá uma mensagem de erro como se você não tivesse escrito nenhum valor.
Recapitulando¶
Declare cookies com Cookie, usando o mesmo padrão comum que utiliza-se em Query e Path.