Introduction to FastAPI
Matt Eckerle
Software and Data Engineering Leader
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
/reviews
Review
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
/reviews
?review_id=1234
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
/reviews
DbReview
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
/reviews
DbReview
{}
@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 to FastAPI