10 定义路由
在上一篇文章中,我们介绍了FastAPI的工作原理,理解了FastAPI背后的核心概念。现在,我们将深入探讨如何在FastAPI中定义路由,并处理请求。
引入FastAPI
首先,我们需要确保已经安装了FastAPI
和uvicorn
。您可以使用以下命令进行安装:
1 | pip install fastapi uvicorn |
接下来,我们创建一个简单的FastAPI应用:
1 | from fastapi import FastAPI |
定义路由
在FastAPI中,路由
是将特定的HTTP请求映射到处理函数的方式。我们可以使用装饰器来定义路由。下面是如何定义一个基本的GET请求的示例:
1 |
|
路由参数
FastAPI支持路径参数和查询参数。下面是一个示例,展示如何使用路径参数:
1 |
|
在这个示例中,我们定义了一个路由/items/{item_id}
,其中item_id
是一个路径参数。q
是一个可选的查询参数。
路由分组
在实际应用中,您可能需要将路由分组。例如,可以使用APIRouter
来组织路由。以下是一个样例:
1 | from fastapi import APIRouter |
通过这种方式,我们将用户相关的路由组织在一个路由器下,并在访问时添加了前缀/api/v1
。
响应模型
为了更好地处理返回的数据,FastAPI允许我们定义响应模型。我们可以使用Pydantic
模型来定义请求和响应的格式。下面是一个示例:
1 | from pydantic import BaseModel |
在这个例子中,Item
类定义了请求的格式,而create_item
函数会接收一个Item
对象作为参数,当POST请求到/items/
时,会返回相同的对象。
错误处理
FastAPI也提供了错误处理的功能。如果我们需要处理特定的错误,我们可以抛出HTTP异常。例如:
1 | from fastapi import HTTPException |
这段代码在item_id
小于0时会返回一个400 Bad Request的错误响应。
小结
在这一部分中,我们学习了如何在FastAPI中定义路由以及处理HTTP请求。通过使用FastAPI,我们能够快速实现功能强大且易于维护的API结构。我们定义了简单的路由、带有路径和查询参数的路由、分组路由、响应模型以及错误处理方法。
在下一篇文章中,我们将继续讨论如何使用HTTP方法,包括GET、POST、PUT和DELETE等,它们是构建RESTful API的基础。请保持关注!