Operacje PUT i DELETE

Wprowadzenie do FastAPI

Matt Eckerle

Software and Data Engineering Leader

PUT vs. DELETE

Operacje PUT

  • Tradycyjne zastosowanie: aktualizacja istniejącego obiektu

  • Parametry przekazywane przez query string i ciało żądania

  • Wymaga aplikacji lub frameworka

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

Operacje DELETE

  • Tradycyjne zastosowanie: usunięcie istniejącego obiektu

  • Parametry przekazywane przez query string i ciało żądania

  • Wymaga aplikacji lub frameworka

    • np. cURL, requests
api = "http://moviereviews.co/reviews/1"
response = requests.delete(api)
Wprowadzenie do FastAPI

Odwoływanie się do istniejących obiektów

  • Brak ORM – aplikacja musi mapować obiekt na ID
  • ID bazy danych – unikalny identyfikator
  • Konwencja _id dla ID bazy danych
    • review_id: tabela reviews, kolumna id
    • Ta sama konwencja w frameworkach z ORM
from pydantic import BaseModel

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

Obsługa operacji PUT

Endpoint PUT do aktualizacji istniejącej recenzji filmu:

  • Endpoint: /reviews
  • Dane wejściowe: DbReview (z poprzedniego slajdu)
  • Dane wyjściowe: 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
Wprowadzenie do FastAPI

Obsługa operacji DELETE

Endpoint DELETE do usunięcia istniejącej recenzji filmu:

  • Endpoint: /reviews
  • Dane wejściowe: DbReview
  • Dane wyjściowe: {}
@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 {}
Wprowadzenie do FastAPI

Czas na ćwiczenia!

Wprowadzenie do FastAPI

Preparing Video For Download...