方向不对,努力白费,经验类测试技术才是职场重要保险! | (点击→)【提醒】AI赋能的前提是对常规测试技术非常的熟悉,联系作者vx了解

FastAPI系列(05):请求信息之路径参数

 

本系列汇总,请查看这里https://www.cnblogs.com/uncleyong/p/19503695

路径参数

官网:https://fastapi.tiangolo.com/tutorial/path-params/

基本用法

参数在 url 中声明,它将被解释为 path 参数

以使用与 Python 格式化字符串相同的语法来声明路径"参数"或"变量"

@app.get("/user/{user_id}")
def get_user(user_id):
    print("user_id的类型是:",type(user_id)) 
    return {"user_id": user_id}

路径参数user_id的值将作为参数user_id传递给函数

 示例

from fastapi import FastAPI
import uvicorn


app = FastAPI()



@app.get("/user/{user_id}")
def get_user(user_id):
    print("user_id的类型是:",type(user_id))  # user_id的类型是: <class 'str'>;说明路径参数都是字符串
    return {"user_id": user_id}


@app.get("/product/{product_id}")
def get_product(product_id):
    return {"product_id": product_id}

if __name__ == '__main__':
    uvicorn.run("path_parameter:app", port=8001, reload=True)

  

访问接口文档

image

 

下面path表示是路径参数,且是any类型、必填
通过下面Curl可以看到,请求后,参数放路径中

image

 

传入的参数是str类型

image

 

有类型路径参数

可以使用标准的 Python 类型标注为函数中的路径参数声明类型

如果期望是int:user_id被声明为int类型,同时,这将为我们的函数提供编辑器支持,包括错误检查、代码补全等等
@app.get("/user/{user_id}")
def get_user(user_id:int):
    print("user_id的类型是:",type(user_id))  # user_id的类型是: <class 'int'>
    return {"user_id": user_id}

 

下面path表示是路径参数,且是integer类型、必填

通过下面Curl可以看到,请求后,参数放路径中

image

 

此时传入的参数是int类型

image

 

路由匹配顺序

示例:

@app.get("/book/{bookname}")
def get_book_info(bookname:str):
    return {"bookname": bookname}

@app.get("/book/xiyouji")
def get_bookname_xiyouji_info():
    return {"bookname": "xiyouji..."}

 

接口文档展示:

image

 

说明请求的是动态路径

image

 

交换顺序

@app.get("/book/xiyouji")
def get_bookname_xiyouji_info():
    return {"bookname": "xiyouji..."}

@app.get("/book/{bookname}")
def get_book_info(bookname:str):
    return {"bookname": bookname}

  

接口文档展示:

image

 

说明请求的是固定路径

image

 

总结:路由匹配顺序是从上到下,尽量避免动态的参数和固定的一样,如果不能避免,固定的要在动态的前面。

 

【bak】

 

 

posted @ 2026-01-24 08:58  全栈测试笔记  阅读(0)  评论(0)    收藏  举报
浏览器标题切换
浏览器标题切换end