Cookie-Parameter¶
Sie können Cookie-Parameter auf die gleiche Weise definieren wie Query- und Path-Parameter.
Cookie importieren¶
Importieren Sie zuerst 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}
Cookie-Parameter deklarieren¶
Deklarieren Sie dann die Cookie-Parameter mit derselben Struktur wie bei Path und Query.
Sie können den Defaultwert sowie alle zusÀtzlichen Validierungen oder Annotierungsparameter definieren:
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}
Technische Details
Cookie ist eine âSchwesterâ-Klasse von Path und Query. Sie erbt auch von derselben gemeinsamen Param-Klasse.
Aber denken Sie daran, dass, wenn Sie Query, Path, Cookie und andere von fastapi importieren, diese tatsĂ€chlich Funktionen sind, die spezielle Klassen zurĂŒckgeben.
Info
Um Cookies zu deklarieren, mĂŒssen Sie Cookie verwenden, da die Parameter sonst als Query-Parameter interpretiert wĂŒrden.
Info
Beachten Sie, dass Browser Cookies auf besondere Weise und hinter den Kulissen handhaben und JavaScript nicht ohne Weiteres erlauben, auf sie zuzugreifen.
Wenn Sie zur API-Dokumentations-UI unter /docs gehen, können Sie die Dokumentation zu Cookies fĂŒr Ihre Pfadoperationen sehen.
Aber selbst wenn Sie die Daten ausfĂŒllen und auf âExecuteâ klicken, da die Dokumentations-UI mit JavaScript arbeitet, werden die Cookies nicht gesendet, und Sie sehen eine Fehler-Meldung, als hĂ€tten Sie keine Werte eingegeben.
Zusammenfassung¶
Deklarieren Sie Cookies mit Cookie und verwenden Sie dabei das gleiche allgemeine Muster wie bei Query und Path.