FastAPI-Day1
FastAPI是对标GoLang、node.js的高性能Web应用框架
官方中文文档 https://fastapi.org.cn/learn/
环境
1 | |
最小实例
1 | |
启动开发服务器
在项目根目录运行
1 | |
浏览器访问127.0.0.1:8000即可
接口文档
FastAPI会自动生成精美的接口文档:
tips: 调用FastAPI()方法生成app实例时可指定docs_url和redoc_url参数
路径参数
可以用python格式化字符串相同的语法定义和使用路径参数
1 | |
Path约束
导入Path对路径参数作额外约束:
1 | |
Path有很多可选参数:
| 参数 | 作用说明 | 适用场景 |
|---|---|---|
alias |
设置参数别名,适配 URL 里和代码变量名不一致的场景 | 路径名含 -、特殊字符 |
gt |
数值大于指定值 | int / float 数值校验 |
ge |
数值大于等于指定值 | int / float 数值校验 |
lt |
数值小于指定值 | int / float 数值校验 |
le |
数值小于等于指定值 | int / float 数值校验 |
multiple_of |
数值必须是指定值的倍数 | 数字格式约束 |
min_length |
字符串最小长度 | 字符串参数 |
max_length |
字符串最大长度 | 字符串参数 |
regex / pattern |
正则匹配字符串格式 | 账号、文件名、编号等格式校验 |
title |
接口文档内字段标题 | 生成 Swagger/Redoc 文档 |
description |
字段详细描述 | 接口文档注释 |
example |
单个示例值 | 文档展示示例 |
examples |
多个示例值列表 | 文档展示多组示例 |
openapi_examples |
结构化示例(带描述) | 复杂接口示例说明 |
deprecated |
标记参数为已废弃 | 接口迭代、旧参数下线 |
include_in_schema |
是否在接口文档中隐藏该参数 | 隐藏内部参数 |
strict |
开启严格类型校验,禁止自动类型转换 | 强类型校验场景 |
allow_inf_nan |
是否允许 inf / nan 浮点值 |
浮点参数特殊场景 |
max_digits |
浮点数总位数限制(不含小数点) | 金额、精度数字 |
decimal_places |
浮点数小数位数限制 | 金额、精度数字 |
validation_alias |
仅数据解析/校验阶段使用的别名 | 区分解析与序列化别名 |
serialization_alias |
仅返回响应时使用的别名 | 区分解析与序列化别名 |
alias_priority |
别名优先级,解决多别名冲突 | 复杂别名场景 |
default_factory |
工厂函数生成动态默认值 | list / dict 等可变类型 |
discriminator |
多态模型判别器(Pydantic 联合类型) | 复杂模型嵌套 |
json_schema_extra |
自定义扩展 OpenAPI 字段 | 拓展接口元数据 |
预定义路径有效值
配合使用Python的Enum类可以实现对路径参数有效值的预定义:
1 | |

.jpg)
.jpg)
.jpg)
.jpg)
.jpg)