fastapi-参数校验

FastAPI 允许你为参数声明额外的信息和校验

路径参数校验

对于路径参数,我们通常会对路径参数的类型进行校验,判断其是否符合要求。通常我们会这么做:

@app.get("/items/{item_id}")
async def item_details(item_id: uuid.UUID|int):
    return {
   "item_id": item_id}

用于判断传递的参数是否为uuid.UUID类型或者int类型。当传递的item_id不是uuid.UUID类型或者int类型,将会引发422错误。错误信息如下:

{
   
    "detail": [
        {
   
            "loc": [
                "path",
                "item_id"
            ],
            "msg": "value is not a valid uuid",
            "type": "type_error.uuid"
        },
        {
   
            "loc": [
                "path",
                "item_id"
            ],
            "msg": "value is not a valid integer",
            "type": "type_error.integer"
        }
    ]
}

这只是对参数的类型做一些校验,如果我们需要做一些复杂的校验,例如对参数的大小,长度做判断时,我们可以使用到Path类型。使用如下:

from fastapi import Path

@app.get("/items/{item_id}")
async def item_details(item_id: int = Path(gt=0, lt=100)):
    return {
   "item_id": item_id}

表示只接收大于0,且小于100的item_id参数。若不符合条件,同样也会引发422错误。Path除了可以对参数做一些校验操作之外,它还可以在Swagger UI中,对该接口参数做一些说明,如下:

from fastapi import Path

@app.get("/items/{item_id}")
async def item_details(item_id: int = Path(title='标题', description=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: FastAPI是一个开源项目,它旨在提供一个快速,简单而又强大的API开发框架。它有助于快速构建和部署高性能,可扩展的API,具有易于使用的管理界面和可定制的路由系统。它还具有自动文档,以及用于从数据库中获取和存储数据的自动ORM支持。 ### 回答2: FastAPI是一个基于Python的高性能Web框架,它专注于速度和开发效率。FastAPI 是一个开源项目,它拥有一个活跃的社区,为开发者提供了许多有用的功能和工具。 首先,FastAPI具有自动创建API文档的功能。它使用了OpenAPI和JSON Schema标准,自动生成可交互式的API文档。这使得开发过程更加直观,开发者无需手动编写文档,节省了大量时间和精力。 其次,FastAPI支持异步处理。它基于Starlette框架构建,可以轻松处理大量并发请求。它使用异步编程模型,有效地处理了高负载的情况。这对于构建实时应用程序和处理大规模数据非常有帮助。 此外,FastAPI还内置了验证和请求数据的功能。它使用了Pydantic库,可以对请求参数进行验证和校验,确保数据的正确性和完整性。这使得开发者可以轻松地处理各种输入数据,并提供相应的错误信息。 FastAPI还支持OAuth和JWT等身份验证和授权机制。这使得开发者可以轻松地为他们的应用程序添加用户认证和授权功能,确保应用程序的安全性。 总之,FastAPI是一个功能强大且易于使用的高性能Web框架。它的开源项目提供了许多有用的功能和工具,极大地提高了开发效率,并使得构建高性能的Web应用程序变得更加简单。 ### 回答3: FastAPI 是一个基于 Python 的高性能 Web 框架,它能够轻松地构建和扩展高效的 Web 应用程序和 API。它拥有许多令人惊叹的特性,使其成为开发者首选的框架之一。 许多基于 FastAPI 开源项目都在各个领域得到了广泛应用。以下是一些值得关注的开源项目: 1. FastAPI-Admin:FastAPI-Admin 是一个基于 FastAPI 和 Tortoise-ORM 的自动生成后台管理界面的插件。它提供了一个动态的、可扩展的后台管理系统,使开发人员可以轻松地生成展示模型的界面,并提供了 CRUD 操作的功能。 2. FastAPI-Utils:FastAPI-Utils 是一个为 FastAPI 提供一些有用工具和扩展的开源库。它包含了一些用于验证、认证和授权的装饰器、中间件以及公共模型等。通过使用 FastAPI-Utils,开发人员可以更加高效地编写和组织他们的代码。 3. FastAPI-CRUDRouter:FastAPI-CRUDRouter 是一个自动生成 CRUD 路由的库,它可以与 FastAPI 框架很好地结合使用。它提供了一组用于创建、读取、更新和删除数据的通用路由,开发人员只需提供模型和数据库连接即可轻松构建完整的 CRUD API。 4. FastAPI-TokenAuth:FastAPI-TokenAuth 是一个为 FastAPI 提供基于 token 的认证和授权功能的插件。它允许开发人员轻松添加身份验证和权限验证机制到他们的应用程序中,并提供一些可定制的选项来适应不同的身份验证和授权需求。 这些开源项目为开发者提供了更多的工具和功能,以便更加高效地构建和扩展他们的 FastAPI 应用程序。无论是快速开发原型应用还是构建大型生产级项目,FastAPI 的开源项目都能帮助开发人员提高开发效率,并提供可靠且高性能的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值