FastAPI Cookie参数

定义Cookie参数与定义QueryPath参数一样。

第一个值是默认值,还可以传递所有验证参数或注释参数:

from typing import Optional
from fastapi import Cookie, FastAPI app = FastAPI() @app.get("/items/")
async def read_items(ads_id: Optional[str] = Cookie(None)):
return {"ads_id": ads_id}

FastAPI Header参数

定义Header参数的方式与定义QueryPathCookie参数相同。

第一个值是默认值,还可以传递所有验证参数或注释参数:

from typing import Optional
from fastapi import FastAPI, Header app = FastAPI() @app.get("/items/")
async def read_items(user_agent: Optional[str] = Header(None)):
return {"User-Agent": user_agent}

自动转换

HeaderPathQueryCookie提供了更多功能。大部分标准请求头用连字符分隔,即减号,但是user-agent这样的变量在python中无效的,因此,在默认情况下,Header把参数名中的字符由下划线改为连字符来提取并存档请求头,同时,HTTP的请求头不区分大小写,可以使用Python标准样式进行声明,因此,可以像在Python代码中一样使用User_agent,无需把首字母大写为User_Agent等形式,如需禁用下画线自动转换为连字符,可以把Headerconvert_underscores参数设置为False

from typing import Optional
from fastapi import FastAPI, Header app = FastAPI() @app.get("/items/")
async def read_items(
strange_header: Optional[str] = Header(None, convert_underscores=False)
):
return {"strange_header": strange_header}

重复的请求头

有时,可能需要接收重复的请求头,即同一个请求头有多值,类型声明中可以使用list定义多个请求头。使用Python list可以接收重复请求头所有的值。

例如:声明X-Token多次出现的请求头,可以写成这样:

from typing import List, Optional
from fastapi import FastAPI, Header app = FastAPI() @app.get("/items/")
async def read_item(x_token: Optional[List[str]] = Header(None)):
return {"X-Token value": x_token}

与路径操作通信时,以下面的方式发送两个HTTP请求头:

X-Token: foo
X-Token: bar

响应结果:

{
"X-Token values": [
"bar",
"foo"
]
}

最新文章

  1. 【BZOJ 2555】SubString
  2. java连接数据源-读取tomcat数据源配置
  3. js(引用类型和setTimeout scope)
  4. [mysql] mysql 5.6.27 innodb 相关参数
  5. [HDOJ4738]Caocao's Bridges(双联通分量,割边,tarjan)
  6. Struts2的注解功能
  7. Android UI ActionBar功能-启动ActionBar
  8. js-tab选项卡
  9. NYOJ--94--cigarettes
  10. 知识点干货—多线程同步【6】之synchronized
  11. Spring有什么缺点?
  12. React-Native(六):React Native完整的demo项目
  13. Android为TV端助力 同时setTag两次,保存多种值
  14. C#从http上拿返回JSON数据
  15. Python中xlwt解析
  16. IIS服务器SSL证书安装
  17. csharp:SMO run sql script
  18. Pandas初学者代码优化指南
  19. mySQL 约束 (Constraints):一、非空约束 NOT NULL 约束
  20. 64位Windows操作系统中的注冊表

热门文章

  1. 秦皇岛2020CCPC补题
  2. layui的switch监听事件无用
  3. CPU体系(2):ARM Store Buffer
  4. vue-element Form表单验证没错却一直提示错误
  5. qtCreator警告解决
  6. os sys json模块
  7. 【极客时间】大数据概述及HDFS介绍
  8. static_cast和dynamic_cast
  9. MySQL事务(四大特征)-存储过程
  10. python进阶之路13 二分法 三元表达式 各种生成式 匿名函数