Параметри Cookie¶
Ви можете визначити параметри Cookie таким же чином, як визначаються параметри Query
і Path
.
Імпорт Cookie
¶
Спочатку імпортуйте 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}
Tip
Бажано використовувати Annotated
версію, якщо це можливо.
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
Бажано використовувати Annotated
версію, якщо це можливо.
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
¶
Потім визначте параметри cookie, використовуючи таку ж конструкцію як для Path
і Query
.
Перше значення це значення за замовчуванням, ви можете також передати всі додаткові параметри валідації чи анотації:
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}
Tip
Бажано використовувати Annotated
версію, якщо це можливо.
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
Бажано використовувати Annotated
версію, якщо це можливо.
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
це "сестра" класів Path
і Query
. Вони наслідуються від одного батьківського класу Param
.
Але пам'ятайте, що коли ви імпортуєте Query
, Path
, Cookie
та інше з fastapi
, це фактично функції, що повертають спеціальні класи.
Info
Для визначення cookies ви маєте використовувати Cookie
, тому що в іншому випадку параметри будуть інтерпритовані, як параметри запиту.
Підсумки¶
Визначайте cookies за допомогою Cookie
, використовуючи той же спільний шаблон, що і Query
та Path
.