1. 创建 FastAPI 应用
首先,确保你已经创建了一个 FastAPI 应用。可以使用以下代码创建一个简单的应用:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
2. 添加查询参数
在 FastAPI 中,查询参数是通过在路由函数的参数列表中使用类型提示实现的。在路由路径中,使用 ? 表示查询参数的开始,并使用 & 来分隔多个查询参数。
from fastapi import Query
@app.get("/items/")
def read_item(skip: int = Query(0, title="Number of items to skip"), limit: int = Query(10, title="Number of items to retrieve")):
return {"skip": skip, "limit": limit}
在这个例子中,我们定义了两个查询参数:skip 和 limit。它们的默认值分别为 0 和 10。FastAPI 会自动从 URL 中提取这些参数,并将它们传递给 read_item 函数。
3. 查询参数的类型和校验
你可以为查询参数指定类型,并使用参数的 ge、le 等校验器来限制参数的取值范围。
from fastapi import Query
@app.get("/items/")
def read_item(skip: int = Query(0, title="Number of items to skip", ge=0), limit: int = Query(10, title="Number of items to retrieve", le=100)):
return {"skip": skip, "limit": limit}
在上面的例子中,我们指定了 skip 参数的最小值(ge=0)和 limit 参数的最大值(le=100)。如果传递的值不符合这些条件,FastAPI 将返回一个错误响应。
4. 布尔查询参数
查询参数可以是布尔类型,可以使用 bool 类型提示。FastAPI 会根据传递的字符串值("true"、"false"、"1"、"0" 等)自动转换为布尔值。
@app.get("/items/")
def read_item(urgent: bool = Query(False, title="Is item urgent?")):
return {"urgent": urgent}
在这个例子中,urgent 是一个布尔型查询参数,默认值为 False。
总结
通过使用查询参数,你可以轻松地扩展你的 API,允许客户端通过 URL 查询字符串传递参数。FastAPI 提供了丰富的功能,使得你可以指定参数的类型、默认值以及进行校验和限制,以确保接收到的参数是符合预期的。在 FastAPI 文档中可以找到更多关于查询参数的详细信息和用法示例。
转载请注明出处:http://www.zyzy.cn/article/detail/7362/FastAPI