1. 创建 FastAPI 应用
首先,确保你已经创建了一个 FastAPI 应用。可以使用以下代码创建一个简单的应用:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
2. 添加路径参数
在 FastAPI 中,路径参数是通过将参数名称包含在 URL 中实现的。在路由路径中使用 {} 括号将参数名括起来。例如,下面的代码演示了如何添加一个路径参数:
from fastapi import Path
@app.get("/items/{item_id}")
def read_item(item_id: int):
return {"item_id": item_id}
在这个例子中,item_id 是路径参数,它会被 FastAPI 从 URL 中提取并传递给 read_item 函数。在路径中使用 {item_id} 作为占位符,FastAPI 将在运行时将实际的路径值传递给 item_id 参数。
3. 设置路径参数的类型
你可以为路径参数指定类型,以确保它符合你的预期。在上面的例子中,我们将 item_id 的类型设置为 int,这意味着 FastAPI 将尝试将路径参数解析为整数。如果解析失败(例如,路径中包含非数字字符),FastAPI 将返回一个错误响应。
from fastapi import Path
@app.get("/items/{item_id}")
def read_item(item_id: int):
return {"item_id": item_id}
4. 可选的路径参数
有时,你可能希望使路径参数变为可选。你可以通过在类型声明中使用 Optional 类型或者将默认值设置为 None 来实现这一点。
from fastapi import Path
@app.get("/items/{item_id}")
def read_item(item_id: int = Path(..., title="The ID of the item", ge=1)):
return {"item_id": item_id}
在这个例子中,item_id 是一个可选的路径参数,但是在类型声明中,我们设置了一个默认值 ...,并通过 ge 参数指定了最小值为 1。这表示如果未提供路径参数,则默认值为 ...,但是如果提供了参数,它必须是大于等于 1 的整数。
5. 校验和限制路径参数
FastAPI 提供了许多内置的校验器和限制器,以确保路径参数符合预期的要求。在上面的例子中,我们使用了 ge 参数来限制 item_id 的最小值。
你还可以使用其他参数,如 lt(小于)、le(小于等于)、gt(大于)、ge(大于等于)等,来进一步限制参数的取值范围。
总结
通过使用路径参数,你可以轻松地从 URL 中提取信息,并在 FastAPI 应用中使用这些信息。路径参数的类型、默认值以及校验和限制功能,使得你可以更加灵活地处理不同的请求情况。在 FastAPI 文档中可以找到更多关于路径参数的详细信息和用法示例。
转载请注明出处:http://www.zyzy.cn/article/detail/7361/FastAPI