Response Cookie'leri¶
🌐 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 Response tipinde bir parametre tanımlayabilirsiniz.
Ardından bu geçici response nesnesi üzerinde cookie'leri set edebilirsiniz.
from fastapi import FastAPI, Response
app = FastAPI()
@app.post("/cookie-and-object/")
def create_cookie(response: Response):
response.set_cookie(key="fakesession", value="fake-cookie-session-value")
return {"message": "Come to the dark side, we have cookies"}
Sonrasında normalde yaptığınız gibi ihtiyaç duyduğunuz herhangi bir nesneyi döndürebilirsiniz (bir dict, bir veritabanı modeli vb.).
Ayrıca 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, bu geçici response'u cookie'leri (ayrıca header'ları ve status code'u) çıkarmak için kullanır ve bunları, döndürdüğünüz değeri içeren nihai response'a ekler. Döndürdüğünüz değer, varsa response_model ile filtrelenmiş olur.
Response parametresini dependency'lerde de tanımlayıp, onların içinde cookie (ve header) set edebilirsiniz.
Doğrudan bir Response döndürün¶
Kodunuzda doğrudan bir Response döndürürken de cookie oluşturabilirsiniz.
Bunu yapmak için, Doğrudan Response Döndürme bölümünde anlatıldığı gibi bir response oluşturabilirsiniz.
Sonra bunun içinde Cookie'leri set edin ve response'u döndürün:
from fastapi import FastAPI
from fastapi.responses import JSONResponse
app = FastAPI()
@app.post("/cookie/")
def create_cookie():
content = {"message": "Come to the dark side, we have cookies"}
response = JSONResponse(content=content)
response.set_cookie(key="fakesession", value="fake-cookie-session-value")
return response
İpucu
Response parametresini kullanmak yerine doğrudan bir response döndürürseniz, FastAPI onu olduğu gibi (doğrudan) döndürür.
Bu yüzden, verinizin doğru tipte olduğundan emin olmanız gerekir. Örneğin JSONResponse döndürüyorsanız, verinin JSON ile uyumlu olması gerekir.
Ayrıca response_model tarafından filtrelenmesi gereken bir veriyi göndermediğinizden de emin olun.
Daha fazla bilgi¶
Teknik Detaylar
from starlette.responses import Response veya from starlette.responses import JSONResponse da kullanabilirsiniz.
FastAPI, geliştirici olarak size kolaylık olması için fastapi.responses içinde starlette.responses ile aynı response sınıflarını sunar. Ancak mevcut response'ların büyük kısmı doğrudan Starlette'ten gelir.
Ve Response, header ve cookie set etmek için sık kullanıldığından, FastAPI bunu fastapi.Response olarak da sağlar.
Mevcut tüm parametreleri ve seçenekleri görmek için Starlette dokümantasyonuna bakın.