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

Header Parametreleri

🌐 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

Query,Path veCookie parametrelerini nasıl tanımlıyorsanız, Header parametrelerini de aynı şekilde tanımlayabilirsiniz.

Header'ı Import Edin

ÖnceHeader'ı import edin:

fromtypingimportAnnotatedfromfastapiimportFastAPI,Headerapp=FastAPI()@app.get("/items/")asyncdefread_items(user_agent:Annotated[str|None,Header()]=None):return{"User-Agent":user_agent}
🤓 Other versions and variants

Tip

Prefer to use theAnnotated version if possible.

fromfastapiimportFastAPI,Headerapp=FastAPI()@app.get("/items/")asyncdefread_items(user_agent:str|None=Header(default=None)):return{"User-Agent":user_agent}

Header Parametrelerini Tanımlayın

Ardından header parametrelerini,Path,Query veCookie ile kullandığınız yapının aynısıyla tanımlayın.

Default değeri ve ek validation ya da annotation parametrelerinin tamamını belirleyebilirsiniz:

fromtypingimportAnnotatedfromfastapiimportFastAPI,Headerapp=FastAPI()@app.get("/items/")asyncdefread_items(user_agent:Annotated[str|None,Header()]=None):return{"User-Agent":user_agent}
🤓 Other versions and variants

Tip

Prefer to use theAnnotated version if possible.

fromfastapiimportFastAPI,Headerapp=FastAPI()@app.get("/items/")asyncdefread_items(user_agent:str|None=Header(default=None)):return{"User-Agent":user_agent}

Teknik Detaylar

Header,Path,Query veCookie'nin "kardeş" sınıfıdır. Ayrıca aynı ortakParam sınıfından kalıtım alır.

Ancak şunu unutmayın:fastapi'denQuery,Path,Header ve diğerlerini import ettiğinizde, bunlar aslında özel sınıfları döndüren fonksiyonlardır.

Bilgi

Header'ları tanımlamak içinHeader kullanmanız gerekir; aksi halde parametreler query parametreleri olarak yorumlanır.

Otomatik Dönüştürme

Header,Path,Query veCookie'nin sağladıklarına ek olarak küçük bir ekstra işlevsellik sunar.

Standart header'ların çoğu, "hyphen" karakteri (diğer adıyla "minus symbol" (-)) ile ayrılır.

Ancakuser-agent gibi bir değişken adı Python'da geçersizdir.

Bu yüzden, default olarakHeader, header'ları almak ve dokümante etmek için parametre adlarındaki underscore (_) karakterlerini hyphen (-) ile dönüştürür.

Ayrıca HTTP header'ları büyük/küçük harfe duyarlı değildir; dolayısıyla onları standart Python stiliyle (diğer adıyla "snake_case") tanımlayabilirsiniz.

YaniUser_Agent gibi bir şey yazıp ilk harfleri büyütmeniz gerekmeden, Python kodunda normalde kullandığınız gibiuser_agent kullanabilirsiniz.

Herhangi bir nedenle underscore'ların hyphen'lara otomatik dönüştürülmesini kapatmanız gerekirse,Header'ınconvert_underscores parametresiniFalse yapın:

fromtypingimportAnnotatedfromfastapiimportFastAPI,Headerapp=FastAPI()@app.get("/items/")asyncdefread_items(strange_header:Annotated[str|None,Header(convert_underscores=False)]=None,):return{"strange_header":strange_header}
🤓 Other versions and variants

Tip

Prefer to use theAnnotated version if possible.

fromfastapiimportFastAPI,Headerapp=FastAPI()@app.get("/items/")asyncdefread_items(strange_header:str|None=Header(default=None,convert_underscores=False),):return{"strange_header":strange_header}

Uyarı

convert_underscores'uFalse yapmadan önce, bazı HTTP proxy'lerinin ve server'ların underscore içeren header'ların kullanımına izin vermediğini unutmayın.

Yinelenen Header'lar

Yinelenen header'lar almak mümkündür. Yani aynı header'ın birden fazla değeri olabilir.

Bu tür durumları, type tanımında bir list kullanarak belirtebilirsiniz.

Yinelenen header'daki tüm değerleri Pythonlist olarak alırsınız.

Örneğin, birden fazla kez gelebilenX-Token header'ını tanımlamak için şöyle yazabilirsiniz:

fromtypingimportAnnotatedfromfastapiimportFastAPI,Headerapp=FastAPI()@app.get("/items/")asyncdefread_items(x_token:Annotated[list[str]|None,Header()]=None):return{"X-Token values":x_token}
🤓 Other versions and variants

Tip

Prefer to use theAnnotated version if possible.

fromfastapiimportFastAPI,Headerapp=FastAPI()@app.get("/items/")asyncdefread_items(x_token:list[str]|None=Header(default=None)):return{"X-Token values":x_token}

Eğer bupath operation ile iki HTTP header göndererek iletişim kurarsanız:

X-Token: fooX-Token: bar

response şöyle olur:

{"X-Token values":["bar","foo"]}

Özet

Header'larıHeader ile tanımlayın;Query,Path veCookie ile kullanılan ortak kalıbı burada da kullanın.

Değişkenlerinizdeki underscore'lar konusunda endişelenmeyin,FastAPI bunları dönüştürmeyi halleder.


[8]ページ先頭

©2009-2026 Movatter.jp