Créer une API JSON CRUD

Introduction à FastAPI

Matt Eckerle

Software and Data Engineering Leader

Quatre étapes du cycle de gestion d'objets (CRUD)

Créer, lire, mettre à jour et supprimer autour d'une base de données

Opérations d'API

Create

  • Opération POST

Read

  • Opération GET

Update

  • Opération PUT

Delete

  • Opération DELETE
Introduction à FastAPI

Pourquoi une API JSON CRUD

Principes de base

  • Gérer tout le cycle de vie des objets
  • Comprendre les pratiques exemplaires des opérations d'API HTTP
  • Concevoir nos propres API de gestion de données

Possibilités

  • Logique d'affaires pour des opérations de données complexes
  • Pipelines de données à haut débit
  • Pipelines d'inférence Machine Learning
Introduction à FastAPI

Créer un module CRUD

from pydantic import BaseModel

class Review(BaseModel):
    movie: str
    num_stars: int
    text: str

class DbReview(BaseModel):
    movie: str
    num_stars: int
    text: str
    # Reference database ID of Reviews
    review_id: int
# crud.py
def create_review(review: Review):
    # Create review in database

def read_review(review_id: int):
    # Read review from database

def update_review(review: DbReview):
    # Update review in database

def delete_review(review_id: int):
    # Delete review from database
Introduction à FastAPI

Point de terminaison POST pour créer

  • Point de terminaison : /reviews
  • Entrée : Review
  • Sortie : DbReview
@app.post("/reviews", response_model=DbReview)
def create_review(review: Review):
    # Create the movie review in the database
    db_review = crud.create_review(review)
    # Return the created review with database ID
    return db_review
Introduction à FastAPI

Point de terminaison GET pour lire

  • Point de terminaison : /reviews
  • Entrée : ?review_id=1234
  • Sortie : DbReview
@app.get("/reviews", response_model=DbReview)
def read_review(review_id: int):
    # Read the movie review from the database
    db_review = crud.read_review(review_id)
    # Return the review
    return db_review
Introduction à FastAPI

Point de terminaison PUT pour mettre à jour

  • Point de terminaison : /reviews
  • Entrée : DbReview
  • 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

Point de terminaison DELETE pour supprimer

  • 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.review_id)
    # Return nothing since the data is gone
    return {}
Introduction à FastAPI

Passons à la pratique !

Introduction à FastAPI

Preparing Video For Download...