我们先来看下如何获取Header参数。代码实现
from fastapi import FastAPI, Header
from typing import Optional
app = FastAPI()
@app.get("/items")
def read_items(user_agent: Optional[str] = Header(None)):
return {"User-Agent": user_agent}
我们看下请求接口
这样我们在请求的时候就可以获取接口的请求头参数了,我们可以在这里做一些特殊的处理。后续在项目的中增加。
我们看下如何实现带cookie参数
from fastapi import FastAPI, Cookie
from typing import Optional
app = FastAPI()
@app.get("/items")
def read_items(cookie_param: Optional[str] = Cookie(None)):
return {"cookie_param": cookie_param}
其实也是很简单的,我们这里请求下看下。
我们简单的做了一个请求。
这样我们在后续的请求中,我们可以对于header或者cookie做特殊的处理。
我们写一个简单的demo。我们要求header的必须有token且token必须是456,没有返回无权限,cookie必须有一个name,且等于123,否则返回认证失败。
我们看下如何实现呢
from fastapi import FastAPI, Cookie, Header
from typing import Optional
app = FastAPI()
@app.get("/items")
def read_items(
name: Optional[str] = Cookie(None),
token: Optional[str] = Header(None)
):
if not token or token != "456":
return "无权限"
if not name or name != "123":
return "认证失败"
return {"msg": "you passed"}
我们看下接口请求
我们看下不带token
我们看下cookie 中的name不等于123,token正确
是可以正常返回的