Opérations PUT et DELETE

Introduction à FastAPI

Matt Eckerle

Software and Data Engineering Leader

PUT vs DELETE

Opérations PUT

  • Usage traditionnel : mettre à jour un objet existant

  • Paramètres envoyés dans la chaîne de requête et le corps de la requête

  • Nécessite une application ou un cadre applicatif

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

Opérations DELETE

  • Usage traditionnel : supprimer un objet existant

  • Paramètres envoyés dans la chaîne de requête et le corps de la requête

  • Nécessite une application ou un cadre applicatif

    • p. ex. cURL, requests
api = "http://moviereviews.co/reviews/1"
response = requests.delete(api)
Introduction à FastAPI

Référencer des objets existants

  • Pas d'ORM : l'appli doit associer l'objet à l'ID
  • ID de base de données : identifiant unique
  • Convention _id pour les ID de BD
    • review_id : table reviews, colonne id
    • Même convention dans les cadres avec ORM
from pydantic import BaseModel

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

Gérer une opération PUT

Point de terminaison PUT pour mettre à jour une critique de film :

  • Point de terminaison : /reviews
  • Entrée : DbReview (diapo précédente)
  • Sortie : 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
Introduction à FastAPI

Gérer une opération DELETE

Point de terminaison DELETE pour supprimer une critique de film :

  • Point de terminaison : /reviews
  • Entrée : DbReview
  • Sortie : {}
@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 {}
Introduction à FastAPI

Passons à la pratique !

Introduction à FastAPI

Preparing Video For Download...