Response Header'ları¶
🌐 Translation by AI and humans
This translation was made by AI guided by humans. 🤝
It could have mistakes of misunderstanding the original meaning, or looking unnatural, etc. 🤖
You can improve this translation by helping us guide the AI LLM better.
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.
from fastapi import FastAPI, Response
app = FastAPI()
@app.get("/headers-and-object/")
def get_headers(response: Response):
response.headers["X-Cat-Dog"] = "alone in the world"
return {"message": "Hello World"}
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 bölümünde anlatıldığı gibi bir response oluşturun ve header'ları ek bir parametre olarak geçin:
from fastapi import FastAPI
from fastapi.responses import JSONResponse
app = FastAPI()
@app.get("/headers/")
def get_headers():
content = {"message": "Hello World"}
headers = {"X-Cat-Dog": "alone in the world", "Content-Language": "en-US"}
return JSONResponse(content=content, headers=headers)
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) bölümünde daha fazla bilgi), bunun için Starlette'in CORS dokümanında açıklanan expose_headers parametresini kullanın.