Cookie-Parameter¶
So wie Query- und Path-Parameter können Sie auch Cookie-Parameter definieren.
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}
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}
Tipp
Bevorzugen Sie die Annotated-Version, falls möglich.
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}
Tipp
Bevorzugen Sie die Annotated-Version, falls möglich.
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¶
Dann deklarieren Sie Ihre Cookie-Parameter, auf die gleiche Weise, wie Sie auch Path- und Query-Parameter deklarieren.
Der erste Wert ist der Typ. Sie können Cookie die gehabten Extra Validierungs- und Beschreibungsparameter hinzufügen. Danach können Sie einen Defaultwert vergeben:
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}
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}
Tipp
Bevorzugen Sie die Annotated-Version, falls möglich.
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}
Tipp
Bevorzugen Sie die Annotated-Version, falls möglich.
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 Schwesterklasse von Path und Query. Sie erbt von derselben gemeinsamen Param-Elternklasse.
Aber erinnern Sie sich, dass, wenn Sie Query, Path, Cookie und andere von fastapi importieren, diese tatsächlich Funktionen sind, welche spezielle Klassen zurückgeben.
Info
Um Cookies zu deklarieren, müssen Sie Cookie verwenden, da diese Parameter sonst als Query-Parameter interpretiert werden würden.
Zusammenfassung¶
Deklarieren Sie Cookies mittels Cookie, auf die gleiche Weise wie bei Query und Path.