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 範例
# Create a record for a movie review
{"movie": "The Neverending Story",
"review": {"num_stars": 4,
"text": "Great movie!",
"public": true}}
pydantic:用來定義請求與回應本文綱要的介面
注意
我們把
Review巢狀放在MovieReview裡
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 入門