Operace PUT a DELETE

Úvod do FastAPI

Matt Eckerle

Software and Data Engineering Leader

PUT vs. DELETE

Operace PUT

  • Tradiční použití: aktualizace existujícího objektu

  • Parametry v query stringu i v těle požadavku

  • Vyžaduje aplikaci nebo framework

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

Operace DELETE

  • Tradiční použití: smazání existujícího objektu

  • Parametry v query stringu i v těle požadavku

  • Vyžaduje aplikaci nebo framework

    • např. cURL, requests
api = "http://moviereviews.co/reviews/1"
response = requests.delete(api)
Úvod do FastAPI

Odkaz na existující objekty

  • Bez ORM, aplikace musí mapovat objekt na ID
  • ID v databázi – jedinečný identifikátor
  • Konvence _id pro databázová ID
    • review_id: tabulka reviews, sloupec id
    • Stejná konvence ve frameworcích s ORM
from pydantic import BaseModel

class DbReview(BaseModel):
    movie: str
    num_stars: int
    text: str
    # Reference database ID of Reviews
    review_id: int
Úvod do FastAPI

Zpracování operace PUT

PUT endpoint pro aktualizaci recenze filmu:

  • Endpoint: /reviews
  • Vstup: DbReview (z předchozího snímku)
  • Výstup: 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
Úvod do FastAPI

Zpracování operace DELETE

DELETE endpoint pro odstranění recenze filmu:

  • Endpoint: /reviews
  • Vstup: DbReview
  • Výstup: {}
@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 {}
Úvod do FastAPI

Pusťme se do cvičení!

Úvod do FastAPI

Preparing Video For Download...