FastAPI 中如何匹配请求方法 (GET, POST, PUT, DELETE 等)?

推荐答案

在 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_iditem 数据。
  • delete_item 函数处理 DELETE 请求,返回被删除的 item_id

通过这些装饰器,你可以轻松地在 FastAPI 中匹配和处理不同的 HTTP 请求方法。

纠错
反馈