Cookie参数、Header参数
2024-09-05 12:57:25
FastAPI Cookie参数
定义Cookie
参数与定义Query
和Path
参数一样。
第一个值是默认值,还可以传递所有验证参数或注释参数:
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
参数的方式与定义Query
、Path
、Cookie
参数相同。
第一个值是默认值,还可以传递所有验证参数或注释参数:
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}
自动转换
Header
比Path
、Query
和Cookie
提供了更多功能。大部分标准请求头用连字符分隔,即减号,但是user-agent
这样的变量在python中无效的,因此,在默认情况下,Header
把参数名中的字符由下划线改为连字符来提取并存档请求头,同时,HTTP的请求头不区分大小写,可以使用Python标准样式进行声明,因此,可以像在Python代码中一样使用User_agent
,无需把首字母大写为User_Agent
等形式,如需禁用下画线自动转换为连字符,可以把Header
的convert_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"
]
}
最新文章
- 【BZOJ 2555】SubString
- java连接数据源-读取tomcat数据源配置
- js(引用类型和setTimeout scope)
- [mysql] mysql 5.6.27 innodb 相关参数
- [HDOJ4738]Caocao's Bridges(双联通分量,割边,tarjan)
- Struts2的注解功能
- Android UI ActionBar功能-启动ActionBar
- js-tab选项卡
- NYOJ--94--cigarettes
- 知识点干货—多线程同步【6】之synchronized
- Spring有什么缺点?
- React-Native(六):React Native完整的demo项目
- Android为TV端助力 同时setTag两次,保存多种值
- C#从http上拿返回JSON数据
- Python中xlwt解析
- IIS服务器SSL证书安装
- csharp:SMO run sql script
- Pandas初学者代码优化指南
- mySQL 约束 (Constraints):一、非空约束 NOT NULL 约束
- 64位Windows操作系统中的注冊表