PUT- en DELETE-bewerkingen

Introductie tot FastAPI

Matt Eckerle

Software and Data Engineering Leader

PUT vs. DELETE

PUT-bewerkingen

  • Traditioneel: een bestaand object updaten

  • Parameters via querystring én request body

  • Vereist een app of framework

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

DELETE-bewerkingen

  • Traditioneel: een bestaand object verwijderen

  • Parameters via querystring én request body

  • Vereist een app of framework

    • bijv. cURL, requests
api = "http://moviereviews.co/reviews/1"
response = requests.delete(api)
Introductie tot FastAPI

Verwijzen naar bestaande objecten

  • Geen ORM, dus app moet object aan ID koppelen
  • Database-ID: unieke identifier
  • _id-conventie voor database-ID's
    • review_id: tabel reviews, kolom id
    • Zelfde conventie in frameworks met ORM
from pydantic import BaseModel

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

Een PUT-bewerking afhandelen

PUT-endpoint om een bestaande recensie te updaten:

  • Endpoint: /reviews
  • Input: DbReview (van vorige slide)
  • Output: DbReview
@app.put("/reviews", response_model=DbReview)
def update_review(review: DbReview):
    # Update de filmrecensie in de database
    db_review = crud.update_review(review)
    # Geef de geüpdatete recensie terug
    return db_review
Introductie tot FastAPI

Een DELETE-bewerking afhandelen

DELETE-endpoint om een bestaande recensie te verwijderen:

  • Endpoint: /reviews
  • Input: DbReview
  • Output: {}
@app.delete("/reviews")
def delete_review(review: DbReview):
    # Verwijder de filmrecensie uit de database
    crud.delete_review(review)
    # Niks teruggeven omdat de data weg is
    return {}
Introductie tot FastAPI

Laten we oefenen!

Introductie tot FastAPI

Preparing Video For Download...