写点什么

FastApi-03- 查询参数

发布于: 27 分钟前
FastApi-03-查询参数

Part1 何为查询参数

FastApi 中,声明不属于路径参数的其他函数参数时,它们将被自动解释为"查询字符串"参数。

Part2 示例代码

from fastapi import FastAPIimport uvicorn
app = FastAPI()goods=['xiaomi','apple','huawei','oppo']
@app.get('/goods/')async def get_goods(start:int = 0,end:int = 3):    return goods[start:end]
if __name__ == "__main__":
    uvicorn.run(app='main:app',host='0.0.0.0',reload=True,debug=True)
复制代码

接口测试

带参数

带部分参数

因为在后台的视图函数中,两个查询参数都有默认值,所以我们可以对个别参数进行修改后进行请求测试。

使用默认参数

当我们在发送请求的时候,不携带查询参数,则后台在接收到请求后会使用默认参数进行处理。即使用start=1,end=3


Part3 可选参数

在我们实际开发中,某些参数可能需要,也可能不需要,这个根据用户的需求来定。

示例代码

@app.get('/name/{name}/age/{age}')async def get_userinfo(name:str,age:int,j:Optional[bool]=False):    ret = {'Name':name}    if j:        ret.update({'Age':age})    return ret
复制代码

可选参数 j 作为判断条件,默认不返回年龄 age,当 j 为真时就会返回年龄信息。

接口测试

普通请求,默认不会返回年龄信息

携带参数 j 进行请求,会返回年龄信息


Part4 参数类型转换

如上,我们在携带参数 j 进行请求的时候其值为 TrueFastApi 为我们提供了更为方便的方式,就是查询参数的类型转换,即当其值为任何真值时,都可完成请求处理。

示例请求

j=1 时进行请求操作

j=0 时进行请求操作


Part5 必选的查询参数

在实际开发中,我们可能需要用户必须携带某个参数才能完成请求。

代码

我们只需要给上面的代码加上一个参数 q 即可,其余工作 FastApi 都会帮我们完成。

@app.get('/name/{name}/age/{age}')async def get_userinfo(name:str,age:int,q:bool,j:Optional[bool]=False):    ret = {'Name':name}    if j:        ret.update({'Age':age})    return ret
复制代码

接口测试

当不带 q 参数进行请求

提示查询参数 q 缺失

当带上 q 参数进行请求

请求成功


感谢您的阅读,别忘了关注,点赞,评论,转发四连哟!

发布于: 27 分钟前阅读数: 2
用户头像

公众号:Python测试和开发 2018.10.14 加入

混迹于云原生领域的测试开发。

评论

发布
暂无评论
FastApi-03-查询参数