FastAPI 查询参数
向服务器传递请求数据的经典方法是在URL上附加一个查询字符串。假设服务器上的Python脚本(hello.py)以 CGI 方式执行,一个由安培尔(&)连接的键值对列表构成了查询字符串,它以问号(?)作为分隔符被附加到URL上。例如 –
http://localhost/cgi-bin/hello.py?name=Ravi&age=20
URL的尾部,即(?)之后的部分是查询字符串,然后由服务器端脚本进行解析,以便进一步处理。
如前所述,查询字符串是一个由&符号连接的参数=值对列表。FastAPI自动将端点中不是路径参数的部分视为查询字符串,并将其解析为参数及其值。这些参数被传递给操作装饰器下面的函数。
例子
from fastapi import FastAPI
app = FastAPI()
@app.get("/hello")
async def hello(name:str,age:int):
return {"name": name, "age":age}
在浏览器中启动Uvicorn服务器和这个URL:
http://localhost:8000/hello?name=Ravi&age=20
你应该得到相同的JSON响应。然而,检查告诉你,FastAPI已经检测到/hello端点没有路径参数,而是查询参数。
点击 Try it out 按钮,输入 “Ravi “和 “20 “作为值,然后按下 Execute 按钮。文档页面现在显示了Curl命令、请求的URL以及HTTP响应的正文和头文件。
例子
你可以使用Python的类型提示来装饰函数的参数。在这个例子中,将name定义为str,age定义为int。
from fastapi import FastAPI
app = FastAPI()
@app.get("/hello/{name}")
async def hello(name:str,age:int):
return {"name": name, "age":age}
尝试输入http://localhost:8000/docs 作为URL。这将打开Swagger UI(OpenAPI)文档。参数’name’是一个路径参数,’age’是一个查询参数