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

2.5 KiB
Raw Blame History

Yanıt Başlıkları

Bir Response Parametresi Kullanın

yol operasyonu fonksiyonunuzda Response türünde bir parametre belirleyebilirsiniz (tıpkı çerezlerde olduğu gibi).

Ardından geçici yanıt nesnesinde başlıkları belirleyebilirsiniz.

{!../../../docs_src/response_headers/tutorial002.py!}

Sonunda normalde döndürdüğünüz gibi herhangi bir nesneyi döndürebilirsiniz (bir dict, bir veritabanı modeli, vb).

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

FastAPI bu geçici yanıtı başlıkları (ayrıca durum kodunu ve çerezleri) çıkarmak için kullanacak ve döndürdüğünüz değeri herhangi bir response_model tarafından filtreleyerek son yanıta koyacaktır.

Bağımlılıklarda da Response parametresini belirtebilir ve başlıkları belirleyebilirsiniz.

Bir Response'u Doğrudan Döndürün

Doğrudan bir Response döndürürken başlıklar oluşturabilirsiniz.

Bunun için Return a Response Directly{.internal-link target=_blank} sayfasında açıklandığı gibi bir yanıt oluşturup başlıkları ekleyin:

{!../../../docs_src/response_headers/tutorial001.py!}

!!! note "Teknik Detaylar" Projenize dahil etmek için from starlette.responses import Response veya from starlette.responses import JSONResponse kullanabilirsiniz.

**FastAPI**, geliştiricilere kolaylık sağlamak amacıyla `starlette.responses`'ı `fastapi.responses` olarak sağlar. Ancak mevcut yanıtların çoğu doğrudan Starlette'den gelir. Aynı durum `status` için de geçerlidir.

`Response` sıklıkla başlıkları ve çerezleri belirlemek için kullanılabileceği için, **FastAPI** ayrıca `fastapi.Response`'ı da sağlar.

Özelleştirilmiş Başlıklar

Aklınızda bulundurun ki özel başlıklar, 'X-' öneki kullanılarak eklenmelidir.

Tarayıcıdaki bir istemcinin görüntüleyebilmesini istediğiniz özel başlıklarınız varsa, bunları Starlette'in CORS dokümantasyonunda belirtildiği gibi expose_headers parametresini kullanarak CORS yapılandırmalarınıza eklemeniz gerekir (daha fazlasını CORS (Cross-Origin Resource Sharing){.internal-link target=_blank} sayfasında okuyabilirsiniz),.