Response Headers¶
🌐 एआई और मनुष्यों द्वारा किया गया अनुवाद
यह अनुवाद मनुष्यों के मार्गदर्शन में एआई द्वारा किया गया है। 🤝
इसमें मूल अर्थ को गलत समझने या अप्राकृतिक लगने आदि जैसी गलतियाँ हो सकती हैं। 🤖
आप हमें एआई LLM को बेहतर मार्गदर्शन करने में मदद करके इस अनुवाद को बेहतर बना सकते हैं।
Response parameter का उपयोग करें¶
आप अपने path operation function में Response प्रकार का parameter घोषित कर सकते हैं (जैसा कि आप cookies के लिए कर सकते हैं)।
और फिर आप उस अस्थायी response object में headers सेट कर सकते हैं।
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"}
और फिर आप अपनी ज़रूरत का कोई भी object return कर सकते हैं, जैसा कि आप सामान्य रूप से करते हैं (एक dict, database model, आदि)।
और अगर आपने response_model घोषित किया है, तो वह अब भी आपके return किए गए object को filter और convert करने के लिए उपयोग किया जाएगा।
FastAPI headers (साथ ही cookies और status code) निकालने के लिए उस अस्थायी response का उपयोग करेगा, और उन्हें अंतिम response में डाल देगा जिसमें आपके द्वारा return किया गया value होता है, जिसे किसी भी response_model द्वारा filter किया गया होता है।
आप dependencies में भी Response parameter घोषित कर सकते हैं, और उनमें headers (और cookies) सेट कर सकते हैं।
सीधे Response return करें¶
जब आप सीधे Response return करते हैं, तब भी आप headers जोड़ सकते हैं।
सीधे Response Return करें में वर्णित तरीके से response बनाएँ और headers को एक अतिरिक्त parameter के रूप में पास करें:
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)
तकनीकी विवरण
आप from starlette.responses import Response या from starlette.responses import JSONResponse का भी उपयोग कर सकते हैं।
FastAPI आपकी, developer की, सुविधा के लिए वही starlette.responses fastapi.responses के रूप में प्रदान करता है। लेकिन उपलब्ध अधिकांश responses सीधे Starlette से आते हैं।
और क्योंकि Response का उपयोग अक्सर headers और cookies सेट करने के लिए किया जा सकता है, FastAPI इसे fastapi.Response पर भी प्रदान करता है।
Custom Headers¶
ध्यान रखें कि custom proprietary headers को X- prefix का उपयोग करके जोड़ा जा सकता है।
लेकिन अगर आपके पास custom headers हैं जिन्हें आप चाहते हैं कि browser में कोई client देख सके, तो आपको उन्हें अपनी CORS configurations में जोड़ना होगा (CORS (Cross-Origin Resource Sharing) में और पढ़ें), इसके लिए Starlette के CORS docs में documented parameter expose_headers का उपयोग करें।