1. Query 参数
Query 参数是附加在 URL 中的查询字符串部分。它们通常用于从客户端传递可选数据,通常是通过 URL 中的 ?key=value
形式传递。Query 参数可以有默认值,并且可以通过验证规则限制其值的范围或格式。
- 特征:Query 参数通常是可选的,因为它们不会直接影响 URL 路径的匹配,只要格式正确,FastAPI 就会自动从请求中提取这些参数。
- 应用场景:常用于过滤、分页、搜索等场景。例如,当需要从数据库中检索特定数据时,可以通过查询参数来指定搜索条件或排序规则。
2. Path 参数
Path 参数是 URL 路径中的一部分。它们通常表示资源的唯一标识符或在 URL 中嵌入的动态内容。Path 参数是必需的,因为它们直接影响 URL 的匹配,只有路径完全符合才会触发对应的处理函数。
- 特征:Path 参数用于匹配特定的资源或标识符,如
/items/{item_id}
。它们是从 URL 路径中提取的,且必须在请求时提供。 - 应用场景:常用于定义 RESTful API 路径,如获取某个特定资源或对某个特定资源进行操作的场景。例如,获取特定商品、用户或文章时,路径中的标识符(如
item_id
)就作为 Path 参数。
3. Cookie 参数
Cookie 参数是从客户端浏览器中发送的 Cookie 中提取的。它们通常用于跟踪用户会话或保存用户偏好设置。FastAPI 允许开发者通过 Cookie()
来定义 Cookie 参数,并且可以为其设置默认值或添加验证规则。
- 特征:Cookie 参数常常用于持久化会话状态或存储用户信息,如用户身份标识(token)或用户设置(如主题颜色、语言)。Cookie 参数通常是由浏览器自动管理和发送的,客户端无需手动传递。
- 应用场景:用于会话管理、身份验证、用户设置和偏好配置等。典型应用包括用户登录验证,购物车信息存储等。
4. Header 参数
Header 参数是从 HTTP 请求头中提取的。HTTP 请求头携带了很多关于请求的信息,如 User-Agent
(表示发起请求的浏览器或客户端)、Content-Type
(表示请求内容的类型)等。开发者可以通过 FastAPI 的 Header()
来轻松定义和获取这些参数。
- 特征:Header 参数在客户端和服务器之间传递元数据,帮助服务器了解请求的性质。它们不像 Query 或 Path 参数那样直接影响资源的标识或内容,而是影响请求的上下文和处理方式。
- 应用场景:常用于身份验证(如
Authorization
头部)、请求类型识别(如Content-Type
、Accept
)以及其他元数据的传递。比如,通过User-Agent
可以判断请求来自于哪个平台或设备,进而进行个性化的处理。