FastAPI 입문
Matt Eckerle
Software and Data Engineering Leader
전통적 용도: 객체 정보 요청
매개변수는 쿼리 문자열로 전달
웹 브라우저에서도 전송 가능
api = "http://moviereviews.co/reviews/1"
response = requests.get(api)
전통적 용도: 새 객체 생성
매개변수는 쿼리 문자열과 본문으로 전달
애플리케이션 또는 프레임워크 필요
cURL, requestsapi = "http://moviereviews.co/reviews/"
body = {"text": "A great movie!"}
response = requests.post(api, json=body)
JSON 예시
# 영화 리뷰 레코드 생성
{"movie": "The Neverending Story",
"review": {"num_stars": 4,
"text": "Great movie!",
"public": true}}
pydantic: 요청/응답 본문 스키마 정의 인터페이스
참고
MovieReview안에Review를 중첩합니다
from pydantic import BaseModel
class Review(BaseModel):
num_stars: int
text: str
public: bool = False
class MovieReview(BaseModel):
movie: str
# Nest Review in MovieReview
review: Review
새 영화 리뷰를 생성하는 POST 엔드포인트:
/reviewsMovieReview(이전 슬라이드)db_review(다른 곳에서 정의)@app.post("/reviews", response_model=DbReview)
def create_review(review: MovieReview):
# Persist the movie review to the database
db_review = crud.create_review(review)
# Return the review including database ID
return db_review
FastAPI 입문