1. 模型化声明Cookie参数
1 | from typing import Annotated |
- 支持使用Pydantic模型批量管理多个Cookie参数
- FastAPI 0.115.0+版本支持该特性,Query/Header参数也可用此方式
- 自动提取请求头中的Cookie字段进行验证和转换
2. 多版本兼容写法
1 | # Python 3.8+兼容写法 |
- 推荐优先使用
Annotated注解方式 - 旧版本兼容写法需注意类型声明方式
- 支持模型复用,适用于需要统一校验规则的场景
3. 禁止额外Cookie配置
1 | class StrictCookies(BaseModel): |
- 通过
model_config = {"extra": "forbid"}限制未声明Cookie - 客户端发送未定义Cookie会返回422错误(如
santa_tracker) - 适用于需要严格安全管控的接口场景
4. 文档交互特性
1 | # Swagger UI会显示Cookie参数文档 |
- 文档界面展示Cookie参数说明,但无法直接交互测试
- 需通过curl或Postman发送Cookie:
1
curl -b "session_id=abc;tracker=123" http://localhost:8000/items/
- 浏览器测试需手动设置Cookie(开发者工具→Application→Cookies)