推荐答案
在 FastAPI 中,可以通过 Cookie 参数来获取请求中的 Cookie。以下是一个简单的示例:
from fastapi import FastAPI, Cookie
app = FastAPI()
@app.get("/items/")
async def read_items(session_id: str = Cookie(None)):
return {"session_id": session_id}在这个示例中,session_id 是从请求的 Cookie 中提取的。如果请求中没有 session_id 这个 Cookie,session_id 的值将为 None。
本题详细解读
1. 导入必要的模块
首先,需要从 fastapi 模块中导入 FastAPI 和 Cookie。FastAPI 是用于创建 API 的主要类,而 Cookie 是一个依赖项,用于从请求中提取 Cookie。
from fastapi import FastAPI, Cookie
2. 创建 FastAPI 实例
接下来,创建一个 FastAPI 实例,这个实例将用于定义路由和处理请求。
app = FastAPI()
3. 定义路由和处理函数
定义一个路由 /items/,并创建一个异步处理函数 read_items。在这个函数中,使用 Cookie 参数来提取请求中的 session_id Cookie。
@app.get("/items/")
async def read_items(session_id: str = Cookie(None)):
return {"session_id": session_id}4. 处理 Cookie
在 read_items 函数中,session_id 参数被声明为 Cookie 类型。Cookie(None) 表示如果请求中没有 session_id 这个 Cookie,session_id 的值将为 None。
5. 返回响应
最后,函数返回一个包含 session_id 的 JSON 响应。如果请求中有 session_id Cookie,它将包含在响应中;如果没有,响应中的 session_id 将为 None。
6. 运行应用
要运行这个 FastAPI 应用,可以使用以下命令:
uvicorn main:app --reload
其中 main 是包含上述代码的 Python 文件名(不包括 .py 扩展名),app 是 FastAPI 实例的名称。
通过这种方式,你可以在 FastAPI 中轻松地获取和处理请求中的 Cookie。