魏县网站制作,网站设计制作体会,上海知名的网站公司,股票软件定制公司在FastAPI中#xff0c;Headers是一个特殊的类型#xff0c;用于处理HTTP请求头#xff08;Headers#xff09;。Headers允许你接收、访问和修改HTTP请求中的头部信息。
使用Headers#xff0c;你可以在FastAPI的路由视图中将请求头作为参数接收#xff0c;并对它们进行…在FastAPI中Headers是一个特殊的类型用于处理HTTP请求头Headers。Headers允许你接收、访问和修改HTTP请求中的头部信息。
使用Headers你可以在FastAPI的路由视图中将请求头作为参数接收并对它们进行操作
Headers
你可以使用定义Query、Path一样的方式来定义Header参数。使用如下
from fastapi import Headerrouter.get(/home)
async def home(authorization: str Header()):return {code: 1}也可以这样定义
from fastapi import Header
from typing import Annotatedrouter.get(/home)
async def home(authorization: Annotated[str, Header()]):return {code: 1}当然像Query、Path和Body等都可以使用Annotated这样来声明。
在Swagger UI中效果如下 这样就表示该请求需要接收一个authorization标头否则将会引发422错误如下
{detail: [{type: missing,loc: [header,authorization],msg: Field required,input: null,url: https://errors.pydantic.dev/2.0.3/v/missing}]
}大多数标准的Headers用连字符分隔也称为减号(-)。但是像user-agent这样的变量在Python中是无效的。因此, 默认情况下, Header 将把参数名称的字符从下划线(_)转换为连字符(-)来提取并记录headers.
同时HTTP headers 是大小写不敏感的因此因此可以使用标准Python样式(也称为 “snake_case”)声明它们。因此您可以像通常在Python代码中那样使用 user_agent而不需要将首字母大写为User_Agent或类似的东西。如果出于某些原因你需要禁用下划线到连字符的自动转换设置Header的参数 convert_underscores为 False:
router.get(/home)
async def home(sp_name: str Header(convert_underscoresFalse)):return {code: 1}Headers常见参数如下
default: 默认值任何类型。 当设置了该值表明该参数非必须参数default_factory: 生成的默认值的函数接收一个Callable类型。default与default_factory不可同时存在alias: 别名, str类型title: Swagger UI中参数的标题str类型。Path/Query操作不起作用description: Swagger UI中参数的描述str类型convert_underscores: 是否将连字符转化为下划线接收一个bool类型默认为Truegt: 大于数字类型ge: 大于或等于数字类型lt: 小于数字类型le: 小于或等于数字类型multiple_of: 接收一个数字类型表示为几的倍数。例如multiple_of的值为2那么该字段的值必须是2的倍数allow_inf_nan: bool类型表示是否允许字段为NaN或无穷大(inf或-inf)。默认为True为与JSON兼容请设置为False。max_digits: int类型表示最大位数字段类型须设置为decimal.Decimal类型。长度计算中不包括小数点前的零或小数点后的零decimal_places: int类型表小数最大位数字段类型须设置为decimal.Decimal类型。长度计算中不包括小数点前的零或小数点后的零min_length: 最小长度int类型max_length: 最大长度int类型regex: 正则匹配str类型example: Swagger UI中参数的示例值任何类型examples: Swagger UI中参数的示例值Dict类型。Path/Query操作不起作用deprecated: 是否过期bool类型默认Falseinclude_in_schema: Swagger UI中是否添加对参数的说明bool类型默认True
Cookies
在FastAPI中Cookies是一个特殊的类型用于处理HTTP请求中的Cookie数据。Cookies允许你接收、访问和修改HTTP请求中的Cookie信息。使用Cookies你可以在FastAPI的路由视图中将Cookie数据作为参数接收并对其进行操作。
同样Cookies也可以像定义Query、Path一样的方式来定义Cookies参数。使用如下
from fastapi import Cookierouter.get(/home)
async def home(sp_name: str Cookie()):return {code: 1}在Swagger UI中效果如下 这样就表示该请求需要接收一个sp_nameCookie否则将会引发422错误如下
{detail: [{type: missing,loc: [cookie,sp_name],msg: Field required,input: null,url: https://errors.pydantic.dev/2.0.3/v/missing}]
}Cookie接收的参数与Header基本相同这里不做介绍