路径参数(/users/{id}
)在项目中 不可避免的,如下:
基本操作
1 | @app.get('/users/{id}') |
id被声明为int类型,如果调用的时候不是int型,会报错。
1 | http://127.0.0.1:8000/users/123 |
注意函数接收(并返回)的值为 123,是一个 int
值,而不是字符串 "123"
。FastAPI通过类型声明自动对请求进行转换。
路径查找顺序
路径操作是按顺序依次运行的,所以下面的代码就会有问题
1 | @app.get('/users/{id}') |
调用http://127.0.0.1:8000/users/zhangsan
时,至上而下执行,/users/{id}
会与 /users/zhangsan
相匹配,认为把zhangsan
传给了 user_id
一定要确保路径的顺序的正确性。
预设参数
有时候想给参数设定一个有效的范围,FastAPI也是支持的。可以使用枚举来设定有效参数值。
1 | class UserName(str, Enum): |
只能传设定好的参数。
1 | http://127.0.0.1:8000/users/zhangsan |