การดำเนินการ POST

FastAPI เบื้องต้น

Matt Eckerle

Software and Data Engineering Leader

การดำเนินการ GET และ POST

การดำเนินการ GET

  • การใช้งานทั่วไป: ขอข้อมูลเกี่ยวกับ object

  • ส่งพารามิเตอร์ผ่าน query string

  • สามารถส่งได้จาก web browser

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

การดำเนินการ POST

  • การใช้งานทั่วไป: สร้าง object ใหม่

  • ส่งพารามิเตอร์ผ่าน query string และ request body

  • ต้องใช้แอปพลิเคชันหรือเฟรมเวิร์ก

    • เช่น cURL, requests
api = "http://moviereviews.co/reviews/"
body = {"text": "A great movie!"}
response = requests.post(api, json=body)
FastAPI เบื้องต้น

HTTP Request Body

  • ส่งข้อมูลหลัง HTTP request header
  • Header ระบุการเข้ารหัส body
  • รองรับโครงสร้างข้อมูลแบบซ้อน
  • JSON และ XML เป็นการเข้ารหัสที่พบบ่อยที่สุดสำหรับ API
  • JSON คือการเข้ารหัสเริ่มต้นของ FastAPI

ตัวอย่าง JSON

# Create a record for a movie review
{"movie": "The Neverending Story",
 "review": {"num_stars": 4,
            "text": "Great movie!",
            "public": true}}
FastAPI เบื้องต้น

การใช้ BaseModel ของ pydantic

pydantic: อินเทอร์เฟซสำหรับกำหนด schema ของ request และ response body

หมายเหตุ

เรากำลังซ้อน Review ไว้ใน MovieReview

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

Endpoint POST สำหรับสร้างรีวิวภาพยนตร์:

  • Endpoint: /reviews
  • Input: MovieReview (จาก slide ก่อนหน้า)
  • Output: 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 เบื้องต้น

มาฝึกกันเลย!

FastAPI เบื้องต้น

Preparing Video For Download...