Movatterモバイル変換


[0]ホーム

URL:


Ana içeriğe geç
Join theFastAPI Cloud waiting list 🚀
Follow@fastapi onX (Twitter) to stay updated
FollowFastAPI onLinkedIn to stay updated
Subscribe to theFastAPI and friends newsletter 🎉
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor

Cookie Parametre Modelleri

🌐 Yapay Zekâ ve İnsanlar Tarafından Çeviri

Bu çeviri, insanlar tarafından yönlendirilen bir yapay zekâ ile oluşturuldu. 🤝

Orijinal anlamın yanlış anlaşılması ya da kulağa doğal gelmeme gibi hatalar içerebilir. 🤖

Yapay zekâ LLM'ini daha iyi yönlendirmemize yardımcı olarak bu çeviriyi iyileştirebilirsiniz.

İngilizce sürüm

Birbirleriyle ilişkili bircookie grubunuz varsa, bunları tanımlamak için birPydantic model oluşturabilirsiniz. 🍪

Bu sayedemodel'i yeniden kullanabilir,birden fazla yerde tekrar tekrar kullanabilir ve tüm parametreler için validation ve metadata'yı tek seferde tanımlayabilirsiniz. 😎

Not

This is supported since FastAPI version0.115.0. 🤓

İpucu

Aynı teknikQuery,Cookie veHeader için de geçerlidir. 😎

Pydantic Model ile Cookies

İhtiyacınız olancookie parametrelerini birPydantic model içinde tanımlayın ve ardından parametreyiCookie olarak bildirin:

fromtypingimportAnnotatedfromfastapiimportCookie,FastAPIfrompydanticimportBaseModelapp=FastAPI()classCookies(BaseModel):session_id:strfatebook_tracker:str|None=Nonegoogall_tracker:str|None=None@app.get("/items/")asyncdefread_items(cookies:Annotated[Cookies,Cookie()]):returncookies
🤓 Other versions and variants

Tip

Prefer to use theAnnotated version if possible.

fromfastapiimportCookie,FastAPIfrompydanticimportBaseModelapp=FastAPI()classCookies(BaseModel):session_id:strfatebook_tracker:str|None=Nonegoogall_tracker:str|None=None@app.get("/items/")asyncdefread_items(cookies:Cookies=Cookie()):returncookies

FastAPI, request ile gelencookies içindenher bir field için veriyiextract eder ve size tanımladığınız Pydantic model'i verir.

Dokümanları Kontrol Edin

Tanımlanan cookie'leri/docs altındaki docs UI'da görebilirsiniz:

Bilgi

Tarayıcıların cookie'leri özel biçimlerde ve arka planda yönetmesi nedeniyle,JavaScript'in cookie'lere erişmesine kolayca izin vermediğini aklınızda bulundurun.

/docs altındakiAPI docs UI'a giderseniz,path operation'larınız için cookie'lerindokümantasyonunu görebilirsiniz.

Ancak verileridoldurup "Execute" düğmesine tıklasanız bile, docs UIJavaScript ile çalıştığı için cookie'ler gönderilmez; dolayısıyla hiç değer girmemişsiniz gibi birerror mesajı görürsünüz.

Fazladan Cookie'leri Yasaklayın

Bazı özel kullanım senaryolarında (muhtemelen çok yaygın değildir) almak istediğiniz cookie'lerikısıtlamak isteyebilirsiniz.

API'niz artık kendicookie onayı'nı kontrol etme gücüne sahip. 🤪🍪

Pydantic'in model configuration'ını kullanarakextra olan herhangi bir field'ıforbid edebilirsiniz:

fromtypingimportAnnotatedfromfastapiimportCookie,FastAPIfrompydanticimportBaseModelapp=FastAPI()classCookies(BaseModel):model_config={"extra":"forbid"}session_id:strfatebook_tracker:str|None=Nonegoogall_tracker:str|None=None@app.get("/items/")asyncdefread_items(cookies:Annotated[Cookies,Cookie()]):returncookies
🤓 Other versions and variants

Tip

Prefer to use theAnnotated version if possible.

fromfastapiimportCookie,FastAPIfrompydanticimportBaseModelapp=FastAPI()classCookies(BaseModel):model_config={"extra":"forbid"}session_id:strfatebook_tracker:str|None=Nonegoogall_tracker:str|None=None@app.get("/items/")asyncdefread_items(cookies:Cookies=Cookie()):returncookies

Bir clientfazladan cookie göndermeye çalışırsa, birerror response alır.

Onayınızı almak için bunca çaba harcayan zavallı cookie banner'ları...API'nin bunu reddetmesi için. 🍪

Örneğin client, değerigood-list-please olan birsanta_tracker cookie'si göndermeye çalışırsa, clientsanta_trackercookie'ye izin verilmiyor diyen birerror response alır:

{"detail":[{"type":"extra_forbidden","loc":["cookie","santa_tracker"],"msg":"Extra inputs are not permitted","input":"good-list-please",}]}

Özet

FastAPI'decookie tanımlamak içinPydantic model'lerini kullanabilirsiniz. 😎


[8]ページ先頭

©2009-2026 Movatter.jp