रिस्पॉन्स मॉडल और स्थिति कोड
स्पष्ट रिस्पॉन्स मॉडल निर्धारित करना और विभिन्न API कार्यों के लिए उपयुक्त HTTP स्थिति कोड सेट करना सीखें।
रिस्पॉन्स मॉडल और स्थिति कोड, CoddyKit पर FastAPI बैकएंड डेवलपमेंट बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह FastAPI बैकएंड डेवलपमेंट बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
API उत्तर: मूल बातें
जब आप किसी API को अनुरोध भेजते हैं, तो सर्वर एक उत्तर लौटाता है। इस उत्तर में केवल डेटा ही नहीं होता; इसमें अनुरोध के परिणाम से जुड़ी महत्वपूर्ण जानकारी भी शामिल होती है।
FastAPI डेटा लौटाना आसान बनाता है, आम तौर पर JSON के रूप में। लेकिन हम यह स्पष्ट करके अपने API को और बेहतर बना सकते हैं कि किस डेटा की अपेक्षा है और क्या परिणाम आया।
उत्तर मॉडल का उपयोग क्यों करें?
उत्तर मॉडल उस डेटा की सटीक संरचना निर्धारित करते हैं जिसे आपका API वापस भेजेगा। यह कई कारणों से महत्वपूर्ण है:
- डेटा की एकरूपता: यह सुनिश्चित करती है कि आपका API हमेशा अनुमानित प्रारूप में डेटा लौटाए।
- स्वचालित दस्तावेज़: FastAPI अपेक्षित उत्तर संरचना दिखाने वाला OpenAPI दस्तावेज़ अपने-आप तैयार करता है।
- डेटा सत्यापन: FastAPI भेजने से पहले बाहर जाने वाले डेटा का आपके मॉडल के अनुसार सत्यापन कर सकता है और त्रुटियाँ पकड़ सकता है।
सरल उत्तर मॉडल परिभाषित करना
उत्तर संरचनाएँ परिभाषित करने के लिए हम पाइडैंटिक मॉडल का उपयोग करते हैं। इसके बाद अपने एंडपॉइंट डेकोरेटर में response_model पैरामीटर के ज़रिए FastAPI को बताते हैं कि किस मॉडल का उपयोग करना है।
इस उदाहरण को चलाकर /docs एंडपॉइंट देखें!
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Product(BaseModel):
name: str
price: float
is_available: bool = True
@app.get("/products/single", response_model=Product)
def get_single_product():
return {"name": "Coffee Mug", "price": 9.99, "is_available": True}
# To run: uvicorn main:app --reloadउत्तर मॉडल के साथ सूचियाँ लौटाना
यदि आपका एंडपॉइंट आइटम की सूची लौटाता है तो क्या होगा? आप typing मॉड्यूल के Python List प्रकार का उपयोग करके इसे अपने response_model में निर्दिष्ट कर सकते हैं।
इससे FastAPI को पता चलता है कि उसे ऐसी सूची की अपेक्षा करनी है जिसमें हर आइटम आपके पाइडैंटिक मॉडल से मेल खाता हो।
from fastapi import FastAPI
from pydantic import BaseModel
from typing import List
app = FastAPI()
class Book(BaseModel):
title: str
author: str
@app.get("/books", response_model=List[Book])
def get_all_books():
return [
{"title": "The Hobbit", "author": "J.R.R. Tolkien"},
{"title": "1984", "author": "George Orwell"}
]
# To run: uvicorn main:app --reloadHTTP स्थिति कोड समझना
डेटा के अलावा, हर API उत्तर में एक HTTP स्थिति कोड भी शामिल होता है। यह तीन अंकों की संख्या क्लाइंट को उसके अनुरोध के परिणाम के बारे में बताती है।
- 2xx सफलता: अनुरोध सफलतापूर्वक प्राप्त, समझा और स्वीकार किया गया। (जैसे, 200 OK, 201 Created)
- 4xx क्लाइंट त्रुटि: क्लाइंट से त्रुटि हुई। (जैसे, 400 Bad Request, 404 Not Found)
- 5xx सर्वर त्रुटि: सर्वर स्पष्ट रूप से मान्य अनुरोध पूरा नहीं कर सका। (जैसे, 500 Internal Server Error)
FastAPI के डिफ़ॉल्ट स्थिति कोड
FastAPI HTTP विधि के आधार पर डिफ़ॉल्ट स्थिति कोड अपने-आप निर्धारित करता है:
- GET:
200 OK - POST:
200 OK(लेकिन अक्सर201 Createdअधिक उपयुक्त होता है) - PUT/DELETE:
200 OK
हालाँकि ये डिफ़ॉल्ट काम करते हैं, स्थिति कोड स्पष्ट रूप से निर्धारित करने से आपका API अधिक सटीक और उपयोगकर्ता-अनुकूल बनता है।
कस्टम सफलता कोड सेट करना (201)
ऐसी कार्रवाइयों के लिए जो नया संसाधन बनाती हैं (जैसे POST अनुरोध), 201 Created स्थिति कोड लौटाना सर्वोत्तम अभ्यास है। आप इसे सीधे अपने पथ संचालन डेकोरेटर में निर्दिष्ट कर सकते हैं।
इसे चलाकर नेटवर्क प्रतिक्रिया कोड देखें!
from fastapi import FastAPI, status
from pydantic import BaseModel
app = FastAPI()
class NewItem(BaseModel):
name: str
description: str | None = None
@app.post("/items", status_code=status.HTTP_201_CREATED)
def create_item(item: NewItem):
# Imagine saving 'item' to a database here
return {"message": "Item created successfully", "item": item}
# To run: uvicorn main:app --reloadHTTPException से त्रुटियों को संभालना (404)
जब अनुरोधित संसाधन नहीं मिलता, तो आपको 404 Not Found स्थिति लौटानी चाहिए। FastAPI ऐसी त्रुटियाँ आसानी से उत्पन्न करने के लिए HTTPException उपलब्ध कराता है।
यह निष्पादन रोक देता है और मानक JSON त्रुटि प्रतिक्रिया लौटाता है।
from fastapi import FastAPI, HTTPException, status
app = FastAPI()
fake_items_db = {"foo": {"name": "Foo"}, "bar": {"name": "Bar"}}
@app.get("/items/{item_id}")
def read_item(item_id: str):
if item_id not in fake_items_db:
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Item not found")
return fake_items_db[item_id]
# To run: uvicorn main:app --reloadमॉडल और स्थिति कोड को संयोजित करना
अक्सर आप प्रतिक्रिया मॉडल और कस्टम स्थिति कोड, दोनों का साथ में उपयोग करेंगे। उदाहरण के लिए, सफल अपडेट में अपडेट किए गए संसाधन के साथ 200 OK लौट सकता है, जबकि विफल अपडेट में 400 Bad Request लौट सकता है।
इससे API का व्यवहार मजबूत और पूर्वानुमेय बनता है।
from fastapi import FastAPI, status
from pydantic import BaseModel
app = FastAPI()
class UserOut(BaseModel):
id: int
username: str
@app.put("/users/{user_id}", response_model=UserOut, status_code=status.HTTP_200_OK)
def update_user(user_id: int, new_username: str):
# Imagine updating user in DB
if user_id == 1:
return {"id": user_id, "username": new_username}
return {"id": user_id, "username": "default_user"}
# To run: uvicorn main:app --reloadत्वरित जाँच: स्थिति कोड
एक क्लाइंट नया उपयोगकर्ता बनाने के लिए POST अनुरोध भेजता है। सर्वर अनुरोध को सफलतापूर्वक संसाधित करके उपयोगकर्ता का डेटा सहेज लेता है। लौटाने के लिए सबसे उपयुक्त HTTP स्थिति कोड कौन-सा है?
पुनरावलोकन: स्पष्ट प्रतिक्रियाएँ
इस पाठ में आपने सीखा कि अपनी FastAPI प्रतिक्रियाओं को स्पष्ट और पूर्वानुमेय कैसे बनाया जाए। हमने ये विषय देखे:
- एकसमान डेटा और स्वचालित दस्तावेज़ीकरण के लिए Pydantic के साथ प्रतिक्रिया मॉडल परिभाषित करना।
201 Createdजैसे HTTP स्थिति कोड को समझना और स्पष्ट रूप से निर्धारित करना, या404 Not Foundके लिएHTTPExceptionसे त्रुटियों को संभालना।
इन अभ्यासों से आपके API की उपयोगिता और मजबूती में काफी सुधार होता है।
एआई शिक्षक के साथ FastAPI बैकएंड डेवलपमेंट बूटकैंप सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 21
- पाठ
- 84
अक्सर पूछे जाने वाले प्रश्न
क्या “रिस्पॉन्स मॉडल और स्थिति कोड” पाठ निःशुल्क है?
हाँ — FastAPI बैकएंड डेवलपमेंट बूटकैंप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “रिस्पॉन्स मॉडल और स्थिति कोड” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“रिस्पॉन्स मॉडल और स्थिति कोड” में मैं क्या सीखूँगा?
स्पष्ट रिस्पॉन्स मॉडल निर्धारित करना और विभिन्न API कार्यों के लिए उपयुक्त HTTP स्थिति कोड सेट करना सीखें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ FastAPI बैकएंड डेवलपमेंट बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या FastAPI बैकएंड डेवलपमेंट बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर FastAPI बैकएंड डेवलपमेंट बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“रिस्पॉन्स मॉडल और स्थिति कोड” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- रिक्वेस्ट बॉडी के लिए Pydantic मॉडल
- रिस्पॉन्स मॉडल और स्थिति कोड
- फ़ॉर्म डेटा और फ़ाइल अपलोड
- हेडर, कुकी और कस्टम प्रतिक्रियाएँ