16 FastAPI路径参数的使用示例

在上一篇文章中,我们探讨了如何使用请求体与响应处理来返回JSON数据。在本篇文章中,我们将重点关注FastAPI中的路径参数,以及如何使用这些参数来构建动态的API接口。接下来,我们将为您展示一个完整的示例,帮助您更好地理解路径参数的使用方式。

什么是路径参数?

在RESTful API设计中,路径参数是指通过URL中的特定位置来传递的参数。这些参数通常用于标识资源的唯一性,比如用户ID、产品ID等。在FastAPI中,您可以通过在函数的参数中定义特定类型的路径参数来轻松实现。

基本示例:使用路径参数

我们将创建一个简单的示例,构建一个API,它可以返回特定用户的信息。首先,我们需要安装fastapiuvicorn(用于运行FastAPI应用):

1
pip install fastapi uvicorn

接下来,我们编写一个FastAPI应用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from fastapi import FastAPI

app = FastAPI()

# 假设我们有一些用户数据
users = {
1: {"name": "Alice", "age": 30},
2: {"name": "Bob", "age": 25},
3: {"name": "Charlie", "age": 35},
}

# 使用路径参数来获取用户信息
@app.get("/users/{user_id}")
async def get_user(user_id: int):
user = users.get(user_id)
if user:
return user
return {"error": "User not found"}

在上面的代码中,我们做了以下事情:

  1. 创建API实例:使用FastAPI()创建一个API实例。
  2. 定义用户数据:创建一个简单的字典,模拟用户数据库。
  3. 定义路径参数:通过在路径/users/{user_id}中使用大括号,表示user_id是一个路径参数。
  4. 获取用户信息:在get_user函数中,根据传入的user_id返回相应的用户数据。如果用户不存在,则返回错误信息。

运行应用

我们可以使用以下命令运行上述FastAPI应用:

1
uvicorn main:app --reload

然后,我们可以在浏览器中访问 http://127.0.0.1:8000/users/1,您应该会看到如下的JSON响应:

1
2
3
4
{
"name": "Alice",
"age": 30
}

如果您访问一个不存在的用户,例如 http://127.0.0.1:8000/users/99,则会收到如下响应:

1
2
3
{
"error": "User not found"
}

路径参数的类型强制

在FastAPI中,路径参数的类型可以通过函数参数的类型注解确定。比如在上面的例子中,user_id: int确保传入的路径参数是整数类型。FastAPI会自动进行类型验证,如果传入的参数类型不匹配,则会返回406错误。

示例:多个路径参数

我们还可以使用多个路径参数来构建复杂的API。例如,让我们扩展一下这个应用,增加用户的地址信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 更新用户信息,添加地址数据
users = {
1: {"name": "Alice", "age": 30, "city": "New York"},
2: {"name": "Bob", "age": 25, "city": "Los Angeles"},
3: {"name": "Charlie", "age": 35, "city": "Chicago"},
}

@app.get("/users/{user_id}/address")
async def get_user_address(user_id: int):
user = users.get(user_id)
if user:
return {"city": user["city"]}
return {"error": "User not found"}

在这个例子中,我们增加了一个新的路径 /users/{user_id}/address,返回指定用户的城市信息。

请求示例

访问 http://127.0.0.1:8000/users/1/address,您会得到:

1
2
3
{
"city": "New York"
}

结论

在本篇文章中,我们深入探讨了在FastAPI中如何使用路径参数来创建动态的API接口。路径参数允许我们根据请求的URL动态获取资源,使得API更加灵活。在下一篇文章中,我们将讨论查询参数的使用,同样也是构建RESTful API不可或缺的一部分。

如果您对本教程有任何疑问或建议,欢迎在评论区留言。感谢您的阅读!

16 FastAPI路径参数的使用示例

https://zglg.work/python-fastapi-zero/16/

作者

AI免费学习网(郭震)

发布于

2024-08-17

更新于

2024-08-18

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论