Response Cookies¶
🌐 एआई और मनुष्यों द्वारा किया गया अनुवाद
यह अनुवाद मनुष्यों के मार्गदर्शन में एआई द्वारा किया गया है। 🤝
इसमें मूल अर्थ को गलत समझने या अप्राकृतिक लगने आदि जैसी गलतियाँ हो सकती हैं। 🤖
आप हमें एआई LLM को बेहतर मार्गदर्शन करने में मदद करके इस अनुवाद को बेहतर बना सकते हैं।
Response parameter का उपयोग करें¶
आप अपने path operation function में Response प्रकार का parameter घोषित कर सकते हैं।
और फिर आप उस temporary response object में cookies set कर सकते हैं।
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"}
और फिर आप अपनी ज़रूरत का कोई भी object return कर सकते हैं, जैसा कि आप सामान्य रूप से करते हैं (एक dict, database model, आदि)।
और अगर आपने response_model घोषित किया है, तो आपके द्वारा return किए गए object को filter और convert करने के लिए उसका अभी भी उपयोग किया जाएगा।
FastAPI उस temporary response का उपयोग cookies (साथ ही headers और status code) निकालने के लिए करेगा, और उन्हें final response में डाल देगा जिसमें आपके द्वारा return किया गया value होगा, किसी भी response_model द्वारा filter किया हुआ।
आप dependencies में भी Response parameter घोषित कर सकते हैं, और उनमें cookies (और headers) set कर सकते हैं।
सीधे Response return करें¶
आप अपने code में सीधे Response return करते समय भी cookies बना सकते हैं।
ऐसा करने के लिए, आप सीधे Response Return करें में बताए अनुसार एक response बना सकते हैं।
फिर उसमें Cookies set करें, और फिर उसे return करें:
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
सुझाव
ध्यान रखें कि अगर आप Response parameter का उपयोग करने के बजाय सीधे response return करते हैं, तो FastAPI उसे सीधे return करेगा।
इसलिए, आपको यह सुनिश्चित करना होगा कि आपका data सही प्रकार का है। उदाहरण के लिए, अगर आप JSONResponse return कर रहे हैं, तो वह JSON के साथ compatible हो।
और यह भी कि आप कोई ऐसा data नहीं भेज रहे हैं जिसे response_model द्वारा filter किया जाना चाहिए था।
अधिक जानकारी¶
तकनीकी विवरण
आप from starlette.responses import Response या from starlette.responses import JSONResponse का भी उपयोग कर सकते हैं।
FastAPI आपकी सुविधा के लिए, developer के रूप में, वही starlette.responses fastapi.responses के रूप में प्रदान करता है। लेकिन उपलब्ध अधिकांश responses सीधे Starlette से आते हैं।
और क्योंकि Response का उपयोग अक्सर headers और cookies set करने के लिए किया जा सकता है, FastAPI इसे fastapi.Response पर भी प्रदान करता है।
सभी उपलब्ध parameters और options देखने के लिए, Starlette में documentation देखें।