Операції PUT і DELETE

Вступ до FastAPI

Matt Eckerle

Software and Data Engineering Leader

PUT vs. DELETE

Операції PUT

  • Традиційне призначення: оновити наявний об’єкт

  • Параметри передаються в рядку запиту та/або в тілі запиту

  • Потрібен застосунок або фреймворк

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

Операції DELETE

  • Традиційне призначення: видалити наявний об’єкт

  • Параметри передаються в рядку запиту та/або в тілі запиту

  • Потрібен застосунок або фреймворк

    • напр., cURL, requests
api = "http://moviereviews.co/reviews/1"
response = requests.delete(api)
Вступ до FastAPI

Посилання на наявні об’єкти

  • Без ORM, тож застосунок має зіставляти об’єкт з ID
  • ID бази даних — унікальний ідентифікатор
  • Конвенція _id для ID у базі
    • review_id: таблиця reviews, стовпець id
    • Та сама конвенція у фреймворках з ORM
from pydantic import BaseModel

class DbReview(BaseModel):
    movie: str
    num_stars: int
    text: str
    # Reference database ID of Reviews
    review_id: int
Вступ до FastAPI

Обробка операції PUT

PUT-ендпойнт для оновлення рецензії на фільм:

  • Ендпойнт: /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
Вступ до FastAPI

Обробка операції DELETE

DELETE-ендпойнт для видалення рецензії на фільм:

  • Ендпойнт: /reviews
  • Вхід: DbReview
  • Вихід: {}
@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 {}
Вступ до FastAPI

Перейдемо до практики!

Вступ до FastAPI

Preparing Video For Download...