2.5 KiB
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),.