PUT 與 DELETE 作業

FastAPI 入門

Matt Eckerle

Software and Data Engineering Leader

PUT 與 DELETE

PUT 作業

  • 傳統用途:更新現有物件

  • 參數可透過查詢字串或請求本文傳送

  • 需要應用程式或框架

    • 例如 cURLrequests
api = "http://moviereviews.co/reviews/1"
body = {"text": "A fantastic movie!"}
response = requests.put(api, json=body)

DELETE 作業

  • 傳統用途:刪除現有物件

  • 參數可透過查詢字串或請求本文傳送

  • 需要應用程式或框架

    • 例如 cURLrequests
api = "http://moviereviews.co/reviews/1"
response = requests.delete(api)
FastAPI 入門

參照既有物件

  • 無 ORM,應用需自行將物件對映至 ID
  • 資料庫 ID:唯一識別碼
  • 資料庫 ID 採用 _id 慣例
    • review_id:資料表 reviews,欄位 id
    • 有 ORM 的框架也採用相同慣例
from pydantic import BaseModel

class DbReview(BaseModel):
    movie: str
    num_stars: int
    text: str
    # Reference database ID of Reviews
    review_id: int
FastAPI 入門

處理 PUT 作業

用 PUT 端點更新電影評論:

  • 端點:/reviews
  • 輸入:DbReview(見前一張投影片)
  • 輸出:DbReview
@app.put("/reviews", response_model=DbReview)
def update_review(review: DbReview):
    # Update the movie review in the database
    db_review = crud.update_review(review)
    # Return the updated review
    return db_review
FastAPI 入門

處理 DELETE 作業

用 DELETE 端點移除電影評論:

  • 端點:/reviews
  • 輸入:DbReview
  • 輸出:{}
@app.delete("/reviews")
def delete_review(review: DbReview):
    # Delete the movie review from the database
    crud.delete_review(review)
    # Return nothing since the data is gone
    return {}
FastAPI 入門

一起來練習吧!

FastAPI 入門

Preparing Video For Download...