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}
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}
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}
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}
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
.