FastAPI Cookie参数
Cookie 是HTTP标头之一。网络服务器向客户端发送响应,除了要求的数据外,它还插入一个或多个cookie。一个 cookie 是一个非常小的数据量,它被存储在客户端的机器中。在同一客户的后续连接请求中,这些cookie数据也会与HTTP请求一起被附上。
Cookie对于记录客户的浏览信息非常有用。Cookie是在HTTP协议的无状态通信中检索有状态信息的一种可靠方法。
在FastAPI中,cookie参数是在 set_cookie() 方法的帮助下设置在响应对象上的。
response.set_cookie(key, value)
例子
下面是 set_cookie() 方法的一个例子。我们有一个名为content的JSON响应对象。调用 set_cookie() 方法来设置一个cookie为 key=”usrname “ 和 value=”admin” --
from fastapi import FastAPI
from fastapi.responses import JSONResponse
app = FastAPI()
@app.post("/cookie/")
def create_cookie():
content = {"message": "cookie set"}
response = JSONResponse(content=content)
response.set_cookie(key="username", value="admin")
return response
要在随后的访问中读回cookie,请使用FastAPI库中的Cookie对象。
from fastapi import FastAPI, Cookie
app = FastAPI()
@app.get("/readcookie/")
async def read_cookie(username: str = Cookie(None)):
return {"username": username}
检查Swagger API中的这两个端点。有这两个路由 “/cookies “ 和 “/readcookie”。 执行与”/cookies “绑定的 create_cookie() 函数。响应只是内容,尽管cookie被设置了。
当 read_cookie() 函数被执行时,cookie被读回并作为响应出现。另外,不是说文档中把用户名确定为一个cookie参数。