fastapi/docs/tr/docs/advanced/response-headers.md

2.6 KiB
Raw Blame History

Response Header'ları

Bir Response parametresi kullanın

Path operation function içinde (cookie'lerde yapabildiğiniz gibi) tipi Response olan bir parametre tanımlayabilirsiniz.

Sonra da bu geçici response nesnesi üzerinde header'ları ayarlayabilirsiniz.

{* ../../docs_src/response_headers/tutorial002_py39.py hl[1, 7:8] *}

Ardından normalde yaptığınız gibi ihtiyacınız olan herhangi bir nesneyi döndürebilirsiniz (bir dict, bir veritabanı modeli vb.).

Eğer bir response_model tanımladıysanız, döndürdüğünüz nesneyi filtrelemek ve dönüştürmek için yine kullanılacaktır.

FastAPI, header'ları (aynı şekilde cookie'leri ve status code'u) bu geçici response'dan alır ve döndürdüğünüz değeri (varsa bir response_model ile filtrelenmiş hâliyle) içeren nihai response'a ekler.

Response parametresini dependency'lerde de tanımlayıp, onların içinde header (ve cookie) ayarlayabilirsiniz.

Doğrudan bir Response döndürün

Doğrudan bir Response döndürdüğünüzde de header ekleyebilirsiniz.

Bir Response'u Doğrudan Döndürün{.internal-link target=_blank} bölümünde anlatıldığı gibi bir response oluşturun ve header'ları ek bir parametre olarak geçin:

{* ../../docs_src/response_headers/tutorial001_py39.py hl[10:12] *}

/// note | Teknik Detaylar

from starlette.responses import Response veya from starlette.responses import JSONResponse da kullanabilirsiniz.

FastAPI, geliştirici olarak size kolaylık olsun diye starlette.responses içeriğini fastapi.responses olarak da sunar. Ancak mevcut response'ların çoğu doğrudan Starlette'ten gelir.

Ayrıca Response header ve cookie ayarlamak için sık kullanıldığından, FastAPI bunu fastapi.Response altında da sağlar.

///

Özel Header'lar

Özel/proprietary header'ların X- prefix'i kullanılarak eklenebileceğini unutmayın.

Ancak tarayıcıdaki bir client'ın görebilmesini istediğiniz özel header'larınız varsa, bunları CORS ayarlarınıza eklemeniz gerekir (CORS (Cross-Origin Resource Sharing){.internal-link target=_blank} bölümünde daha fazla bilgi), bunun için Starlette'in CORS dokümanındaıklanan expose_headers parametresini kullanın.