推荐答案
在 FastAPI 中,你可以通过使用 @app
装饰器来匹配不同的请求方法。以下是如何匹配 GET、POST、PUT 和 DELETE 请求的示例:
-- -------------------- ---- ------- ---- ------- ------ ------- --- - --------- ---------------------------- ----- --- ------------------ ----- ------ ----------- -------- -------------------- ----- --- ----------------- ------ ------ -------- ----- ---------------------------- ----- --- -------------------- ---- ----- ------ ------ ----------- -------- ------- ----- ------------------------------- ----- --- -------------------- ----- ------ ----------- --------
本题详细解读
1. 使用 @app
装饰器匹配请求方法
在 FastAPI 中,@app
装饰器用于定义路由和请求方法。你可以通过以下方式匹配不同的请求方法:
@app.get("/path")
:匹配 GET 请求。@app.post("/path")
:匹配 POST 请求。@app.put("/path")
:匹配 PUT 请求。@app.delete("/path")
:匹配 DELETE 请求。
2. 路径参数和请求体
路径参数:在路径中使用
{item_id}
这样的占位符来捕获路径参数。例如,@app.get("/items/{item_id}")
中的item_id
会被捕获并传递给函数。请求体:对于 POST 和 PUT 请求,通常需要传递请求体数据。你可以通过定义一个 Pydantic 模型或直接使用
dict
类型来接收请求体数据。
3. 异步处理
FastAPI 支持异步处理请求。你可以使用 async def
来定义异步函数,从而在处理请求时不会阻塞事件循环。
4. 返回值
FastAPI 会自动将函数的返回值转换为 JSON 响应。你可以返回字典、列表、Pydantic 模型等,FastAPI 会自动处理序列化。
5. 示例代码解释
read_item
函数处理 GET 请求,返回一个包含item_id
的字典。create_item
函数处理 POST 请求,返回接收到的item
数据。update_item
函数处理 PUT 请求,返回更新后的item_id
和item
数据。delete_item
函数处理 DELETE 请求,返回被删除的item_id
。
通过这些装饰器,你可以轻松地在 FastAPI 中匹配和处理不同的 HTTP 请求方法。