通用校验和元数据
- alias: 别名,提供一个简短或更易理解的名称作为字段或参数的替代标识。这有助于提高代码或文档的可读性。
- title:标题,对字段或参数功能的简短描述,常用于自动生成的文档中,便于用户快速了解其用途。
- description:描述,提供详细信息说明字段或参数的作用、取值要求、应用场景等,帮助开发者和用户更好地理解和使用。
- deprecated:废弃,标记该字段或参数已不再推荐使用,并可能在未来的版本中移除。提示开发者应避免使用并寻找替代方案。
特定于字符串的校验
- min_length:最小长度,指定字符串类型的字段或参数必须至少包含的字符数量。低于此限制则校验不通过。
- max_length:最大长度,限定字符串类型的字段或参数允许的最大字符数量。超过此限制则不符合要求。
- regex:正则表达式,定义字符串必须符合的模式或格式。可以用来检查字符串是否遵循特定的格式,如电子邮件地址、电话号码或日期格式等。不符合正则表达式的字符串将被视为无效。
这些校验规则在设计API、数据库表结构或编写验证逻辑时非常重要,能够帮助开发者提前预防错误输入,保证系统的健壮性和数据的一致性。
举例:
from typing import Union
import uvicorn
from fastapi import FastAPI, Query
# 初始化FastAPI应用程序
app = FastAPI()
# 定义一个路由,用于获取项目列表
@app.get("/items/")
async def read_items(
q: Union[str, None] = Query(
default=None,
alias="item-query",
title="Query string",
description="Query string for the items to search in the database that have a good match",
min_length=3,
max_length=50,
pattern="^fixedquery$",
deprecated=True,
),
):
"""
异步函数,用于处理获取项目列表的请求。
参数:
- q: 查询字符串参数,用于筛选项目。该参数是可选的,当提供时,必须是一个长度在3到50之间的字符串,并且必须匹配模式"^fixedquery$"。此参数已被标记为弃用。
返回:
- 一个包含项目列表和查询字符串(如果提供)的字典。
"""
# 默认的返回结果包含两个固定的项目
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
# 如果提供了查询字符串q,则将其添加到返回结果中
if q:
results.update({"q": q})
return results
# 主函数,用于启动FastAPI应用程序
if __name__ == "__main__":
## 线上模式
# uvicorn.run("abr_server:app", host="0.0.0.0", port = 1213)
## debug 模式
uvicorn.run("test2:app", host="0.0.0.0", port=1215, reload=True, )