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:用于定义请求与响应体模式的接口
注意
我们将
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 入门