1. 基础声明方式
1 | from fastapi import Cookie, FastAPI |
- 必须使用
Cookie()声明参数,否则会被识别为查询参数 - 参数名需与客户端cookie的key完全一致才能正确接收
- 支持类型注解与默认值设置,未传值时默认为None
2. 模型化处理
1 | from pydantic import BaseModel |
- 支持使用Pydantic模型批量管理多个Cookie参数
- 自动提取请求头中的对应字段进行验证和转换
- 模型可复用,适用于需要统一校验规则的场景
3. 禁止额外Cookie
1 | class StrictCookie(BaseModel): |
- 通过模型配置禁止客户端发送未声明的Cookie
- 违规时会返回422错误(如客户端发送未定义的
lang参数) - 适用于需要严格管控Cookie参数的安全场景
4. 文档交互说明
1 | # Swagger UI会显示Cookie参数文档 |
- 文档界面会展示Cookie参数的字段说明
- 浏览器测试时需手动设置Cookie(开发者工具→Application→Cookies)
- JavaScript无法直接操作受HTTP Only保护的Cookie
5. 高级配置技巧
1 | from fastapi.responses import JSONResponse |
- 通过Response对象设置安全Cookie(需导入
JSONResponse) - 支持
max_age、domain、secure等高级参数配置 - 建议敏感Cookie启用
httponly和samesite防护