FastAPI 中如何使用路径参数?

推荐答案

在 FastAPI 中,路径参数是通过在路径中使用花括号 {} 来定义的。你可以在路径操作函数的参数中声明这些路径参数,FastAPI 会自动将它们解析并传递给函数。

在这个例子中,item_id 是一个路径参数,FastAPI 会自动将其解析为整数类型,并传递给 read_item 函数。

本题详细解读

路径参数的基本使用

路径参数是 FastAPI 中用于从 URL 中提取值的一种方式。通过在路径中使用花括号 {},你可以定义一个路径参数。FastAPI 会自动将路径中的值解析为相应的类型,并传递给路径操作函数。

例如,在以下代码中:

  • /items/{item_id} 定义了一个路径参数 item_id
  • item_id: int 指定了 item_id 的类型为整数。FastAPI 会自动将 URL 中的 item_id 转换为整数类型。

路径参数的类型转换

FastAPI 支持多种类型的路径参数,包括 intfloatstr 等。你可以在路径操作函数的参数中指定路径参数的类型,FastAPI 会自动进行类型转换。

例如:

在这个例子中,如果 URL 中的 item_id 是一个有效的整数,FastAPI 会将其转换为整数类型并传递给 read_item 函数。如果 item_id 不是一个有效的整数,FastAPI 会返回一个 422 错误(Unprocessable Entity),表示请求参数无效。

路径参数的顺序

在 FastAPI 中,路径参数的顺序非常重要。FastAPI 会按照路径中定义的顺序来匹配路径参数。

例如:

在这个例子中,user_iditem_id 的顺序必须与路径中的顺序一致。如果顺序不一致,FastAPI 将无法正确解析路径参数。

路径参数的可选值

默认情况下,路径参数是必需的。如果你希望某个路径参数是可选的,可以使用 Optional 类型,并在路径中提供一个默认值。

例如:

在这个例子中,item_id 是一个可选的路径参数。如果 URL 中没有提供 item_id,FastAPI 会将其设置为 None

路径参数的正则表达式

FastAPI 还支持使用正则表达式来定义路径参数。你可以通过在路径参数后添加正则表达式来限制路径参数的格式。

例如:

在这个例子中,item_id 必须是一个整数。如果 item_id 不是一个有效的整数,FastAPI 会返回一个 404 错误(Not Found)。

总结

路径参数是 FastAPI 中非常强大且灵活的功能,允许你从 URL 中提取值并将其传递给路径操作函数。通过合理使用路径参数,你可以构建出更加动态和灵活的 API。

纠错
反馈