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...