Files
fastapi/docs/tr/docs/tutorial/header-params.md
2026-01-31 19:22:34 +00:00

3.3 KiB
Raw Blame History

Header Parametreleri

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

Header'ı Import Edin

Önce Header'ı import edin:

{* ../../docs_src/header_params/tutorial001_an_py310.py hl[3] *}

Header Parametrelerini Tanımlayın

Ardından header parametrelerini, Path, Query ve Cookie 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:

{* ../../docs_src/header_params/tutorial001_an_py310.py hl[9] *}

/// note | Teknik Detaylar

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

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

///

/// info | Bilgi

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

///

Otomatik Dönüştürme

Header, Path, Query ve Cookie'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.

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

Bu yüzden, default olarak Header, 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.

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

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

{* ../../docs_src/header_params/tutorial002_an_py310.py hl[10] *}

/// warning | Uyarı

convert_underscores'u False 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 Python list olarak alırsınız.

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

{* ../../docs_src/header_params/tutorial003_an_py310.py hl[9] *}

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

X-Token: foo
X-Token: bar

response şöyle olur:

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

Özet

Header'ları Header ile tanımlayın; Query, Path ve Cookie 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.