POST ऑपरेशन

FastAPI परिचय

Matt Eckerle

Software and Data Engineering Leader

GET बनाम POST ऑपरेशन

GET ऑपरेशन

  • पारंपरिक उपयोग: किसी ऑब्जेक्ट की जानकारी माँगना

  • पैरामीटर क्वेरी स्ट्रिंग से भेजे जाते हैं

  • वेब ब्राउज़र से भेजे जा सकते हैं

api = "http://moviereviews.co/reviews/1"
response = requests.get(api)

POST ऑपरेशन

  • पारंपरिक उपयोग: नया ऑब्जेक्ट बनाना

  • पैरामीटर क्वेरी स्ट्रिंग और रिक्वेस्ट बॉडी दोनों से भेजे जाते हैं

  • किसी एप्लिकेशन या फ्रेमवर्क की आवश्यकता होती है

    • जैसे cURL, requests
api = "http://moviereviews.co/reviews/"
body = {"text": "A great movie!"}
response = requests.post(api, json=body)
FastAPI परिचय

HTTP रिक्वेस्ट बॉडी

  • डेटा HTTP रिक्वेस्ट हैडर के बाद भेजा जाता है
  • हैडर बॉडी एन्कोडिंग बताता है
  • नेस्टेड डेटा स्ट्रक्चर सपोर्ट करता है
  • APIs के लिए JSON और XML सबसे आम एन्कोडिंग हैं
  • JSON FastAPI की डिफ़ॉल्ट एन्कोडिंग है

JSON उदाहरण

# किसी मूवी रिव्यू का रिकॉर्ड बनाएँ
{"movie": "The Neverending Story",
 "review": {"num_stars": 4,
            "text": "Great movie!",
            "public": true}}
FastAPI परिचय

pydantic के BaseModel का उपयोग

pydantic: रिक्वेस्ट और रिस्पॉन्स बॉडी स्कीमा परिभाषित करने का इंटरफ़ेस

नोट

हम MovieReview के अंदर Review नेस्ट कर रहे हैं

from pydantic import BaseModel

class Review(BaseModel):
    num_stars: int
    text: str
    public: bool = False

class MovieReview(BaseModel):
    movie: str
    # Nest Review in MovieReview
    review: Review
FastAPI परिचय

POST ऑपरेशन संभालना

नया मूवी रिव्यू बनाने के लिए POST एन्डपॉइंट:

  • एन्डपॉइंट: /reviews
  • इनपुट: MovieReview (पिछली स्लाइड से)
  • आउटपुट: db_review (कहीं और परिभाषित)
@app.post("/reviews", response_model=DbReview)
def create_review(review: MovieReview):
    # Persist the movie review to the database
    db_review = crud.create_review(review)
    # Return the review including database ID
    return db_review
1 https://fastapi.tiangolo.com/tutorial/sql-databases/#crud-utils
FastAPI परिचय

Ayo berlatih!

FastAPI परिचय

Preparing Video For Download...