Créer une API JSON CRUD

Introduction à FastAPI

Matt Eckerle

Software and Data Engineering Leader

Quatre étapes du cycle de vie de gestion d'objet (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 fondamentaux

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

Opportunités

  • Logique métier pour des opérations de données plus 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

Endpoint POST pour créer

  • Endpoint : /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

Endpoint GET pour lire

  • Endpoint : /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

Endpoint PUT pour mettre à jour

  • Endpoint : /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

Endpoint DELETE pour supprimer

  • Endpoint : /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...