FastAPI(4)- 路径参数 Path Parameters (上)

简介: FastAPI(4)- 路径参数 Path Parameters (上)

什么是路径


 

路径参数

就是将路径上的某一部分变成参数,可通过请求传递,然后 FastAPI 解析

 

最简单的栗子


import uvicorn
from fastapi import FastAPI
app = FastAPI()
# 路径参数 item_id
@app.get("/items/{item_id}")
async def read_item(item_id):
    return {"item_id": item_id}
if __name__ == '__main__':
    uvicorn.run(app="2_get:app", host="127.0.0.1", port=8080, reload=True, debug=True)


postman 请求结果

image.png


限定类型的路径参数


# 指定类型的路径参数

@app.get("/items/{item_id}/article/{num}")

async def path_test(item_id: str, num: int):

   return {"item_id": item_id, "num": num}

多个路径参数,且有指定类型

 

正确传参的请求结果

image.png


123 传进来的时候是字符串,但 FastAPI 会自动解析转换成 int,如果转换失败就会报错

 

num 不传 int 的请求结果

image.png

友好的错误提示类型不对

 

Swagger 接口文档的显示效果

image.png


路径函数顺序问题


@app.get("/users/me")
async def read_user_me():
    return {"user_id": "the current user"}
@app.get("/users/{user_id}")
async def read_user(user_id: str):
    return {"user_id": user_id}


/users/{user_id} 路径是包含 /users/me 的

当想匹配到固定路径时,需要将固定路径函数放在路径参数函数前面

 

postman 请求结果


image.png



相关文章
|
数据采集 JSON JavaScript
全面拥抱FastApi —三大参数及验证
全面拥抱FastApi —三大参数及验证
|
18天前
|
开发框架 JSON API
Python中FastAPI项目使用 Annotated的参数设计
Python中FastAPI项目使用 Annotated的参数设计
|
3月前
|
Python
Fastapi进阶用法,路径参数,路由分发,查询参数等详解
Fastapi进阶用法,路径参数,路由分发,查询参数等详解
127 1
|
网络安全 Windows
基于fastapi实现6个接口(token拦截, 2个业务流程,接口参数依赖校验)已经通过postman测试,记录部署服务器和windows,用于pytest接口自动化框架的接口测试对象
基于fastapi实现6个接口(token拦截, 2个业务流程,接口参数依赖校验)已经通过postman测试,记录部署服务器和windows,用于pytest接口自动化框架的接口测试对象
|
前端开发 中间件 API
FastAPI第二天---参数校验
FastAPI第二天---参数校验
204 0
FastAPI第二天---参数校验
|
NoSQL 测试技术 Redis
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
|
存储 测试技术 数据安全/隐私保护
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
|
测试技术 数据安全/隐私保护
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(上)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(上)
FastAPI(八十二)实战开发《在线课程学习系统》接口开发-- 课程上架下架
FastAPI(八十二)实战开发《在线课程学习系统》接口开发-- 课程上架下架