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şlkları 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'nin 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),.