FastAPI 中如何定义路径操作函数?

推荐答案

在 FastAPI 中,路径操作函数是通过使用 HTTP 方法装饰器来定义的。常见的 HTTP 方法包括 GETPOSTPUTDELETE 等。以下是一个简单的示例:

在这个示例中,@app.get("/items/{item_id}") 定义了一个处理 GET 请求的路径操作函数。路径参数 item_id 会自动传递给函数 read_item,并且 FastAPI 会自动处理类型转换和验证。

本题详细解读

1. 路径操作函数的基本结构

路径操作函数是 FastAPI 中处理 HTTP 请求的核心部分。它们通常通过装饰器与特定的 HTTP 方法和路径绑定。例如:

  • @app.get("/items/{item_id}"):这是一个装饰器,表示这个函数将处理 /items/{item_id} 路径的 GET 请求。
  • item_id: int:这是一个路径参数,FastAPI 会自动将其转换为整数类型。
  • return {"item_id": item_id}:函数返回一个 JSON 响应。

2. 支持的 HTTP 方法

FastAPI 支持多种 HTTP 方法,常用的包括:

  • @app.get():处理 GET 请求。
  • @app.post():处理 POST 请求。
  • @app.put():处理 PUT 请求。
  • @app.delete():处理 DELETE 请求。

3. 路径参数和查询参数

  • 路径参数:路径参数是 URL 路径的一部分,通常用于标识资源。例如,/items/{item_id} 中的 item_id 就是一个路径参数。

  • 查询参数:查询参数是 URL 中 ? 后面的部分,通常用于过滤或排序。例如,/items/?skip=0&limit=10 中的 skiplimit 就是查询参数。

4. 请求体和响应模型

FastAPI 还支持定义请求体和响应模型,以便更好地处理复杂的数据结构。

  • 请求体:使用 Pydantic 模型定义请求体。

    -- -------------------- ---- -------
    ---- -------- ------ ---------
    
    ----- ----------------
        ----- ---
        ------------ --- - ----
        ------ -----
        ---- ----- - ----
    
    --------------------
    --- ----------------- ------
        ------ ----
  • 响应模型:使用 response_model 参数定义响应模型。

5. 异步支持

FastAPI 支持异步路径操作函数,只需在函数定义前加上 async 关键字。

6. 依赖注入

FastAPI 支持依赖注入,可以将依赖项注入到路径操作函数中。

通过以上方式,你可以在 FastAPI 中定义路径操作函数,处理各种 HTTP 请求,并利用 FastAPI 的强大功能来简化开发。

纠错
反馈