You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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