FastAPI 学习之路(四)使用pydantic模型做请求体
前言
我们之前分享的分享一些数据类型。这次我们分享的是Cookie,Header参数相关的。
正文
我们先来看下如何获取Header参数。代码实现
from typing import Optional
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/items/")
def read_items(user_agent: Optional[str] = Header(None)):
return {"User-Agent": user_agent}
我们看下接口请求
这样我们在请求的时候就可以获取接口的请求参数了,我们可以在这里做一些特殊的处理。后续在项目的中增加。
我们看下如何实现带cookie参数。
from typing import Optional
from fastapi import Cookie, FastAPI
app = FastAPI()
@app.get("/items/")
def read_items(ads_id: Optional[str] = Cookie(None)):
print(ads_id)
return {"ads_id": ads_id}
其实也是很简单的,我们这里请求下看下。
我们简单的做了一个请求。
这样我们在后续的请求中,我们可以对于header或者cookie做特殊的处理。
我们写一个简单的demo。我们要求header的必须有token且token必须是456,没有返回无权限,cookie必须有一个name,且等于123,否则返回认证失败。
我们看下如何实现呢
from typing import Optional
from fastapi import Cookie, FastAPI,Header
app = FastAPI()
@app.get("/items/")
def read_items(name: Optional[str] = Cookie(None),
token: Optional[str] = Header(None)):
if token is None or token!='456':
return '无权限'
if name is None or name !="123":
return "认证失败"
我们看下接口请求
我们看下不带token
token不等于456
我们看下cookie 中的name不等于123,token正确
接口可以正常返回。
。
后记
发现问题,解决问题。遇到问题,慢慢解决问题即可。
欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识
如果你有问题可以留言或者加我微信:952943386。2021,一起牛转钱坤,一起牛逼。
如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~