第一章1.1 fastapi 路径参数的快速使用

301 阅读3分钟

一、什么是路径参数

路径参数是 URL 路径的一部分,用于识别特定的资源。在 FastAPI 中,路径参数通过在路径字符串中使用大括号 {} 来定义。例如,在 URL /items/{item_id} 中,{item_id} 就是一个路径参数。

二、定义路径参数

在 FastAPI 中,定义路径参数非常简单。只需在路由装饰器中使用大括号 {} 将参数名称包围起来,然后在函数签名中为参数指定类型即可。以下是一个简单的示例:

python
	from fastapi import FastAPI  

	  

	app = FastAPI()  

	  

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

	async def read_item(item_id: int):  

	    return {"item_id": item_id}

在这个例子中,我们定义了一个名为 item_id 的路径参数,其类型为整数。当用户访问 /items/123 这样的 URL 时,FastAPI 会将 123 解析为整数,并将其传递给 read_item 函数。

三、路径参数的约束和默认值

除了基本的数据类型转换外,FastAPI 还允许您为路径参数设置约束和默认值。这可以帮助您更精确地控制资源的访问。以下是一个示例:

python
	from fastapi import FastAPI, Path  

	  

	app = FastAPI()  

	  

	@app.get("/users/{user_id}")  

	async def read_user(user_id: int = Path(..., gt=0)):  

	    return {"user_id": user_id}

在这个例子中,我们为 user_id 参数设置了一个约束条件 gt=0,表示该参数的值必须大于零。同时,我们还使用 Path 函数为 user_id 参数设置了一个默认值 ...,表示该参数是必需的。如果用户访问的 URL 不包含有效的 user_id 参数,FastAPI 将返回一个错误。

四、使用路径参数构建 RESTful API

路径参数是构建 RESTful API 的关键组件之一。通过使用路径参数,您可以轻松地识别和操作特定的资源。以下是一个使用路径参数构建 RESTful API 的示例:

python
	from fastapi import FastAPI, HTTPException, status  

	from pydantic import BaseModel  

	  

	class Item(BaseModel):  

	    name: str  

	    description: str = None  

	    price: float  

	    tax: float = None  

	  

	app = FastAPI()  

	  

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

	async def read_item(item_id: int):  

	    # 从数据库中获取指定的 item 数据  

	    item = items.get(item_id)  # 假设 items 是一个字典或数据库查询接口  

	    if item is None:  

	        raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Item not found")  

	    return item

在这个例子中,我们定义了一个名为 Item 的 Pydantic 模型,用于表示商品数据。然后,我们创建了一个 GET 请求的路由 /items/{item_id},用于获取指定商品的详细信息。在函数内部,我们使用 items.get(item_id) 从数据源中获取商品数据。如果找不到指定的商品,我们将返回一个 HTTP 404 错误。否则,我们将返回商品数据作为响应体。

五、总结与拓展学习建议

通过本教程的学习,您应该已经掌握了 FastAPI 中路径参数的基本使用方法。为了更深入地了解 FastAPI 和相关技术的使用,建议您参考官方文档和教程进行深入学习。下一章:《表单提交》