Zum Inhalt

Cookie-Parameter

Sie können Cookie-Parameter auf die gleiche Weise definieren wie Query- und Path-Parameter.

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}

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.