跳转到主要内容

Quart扩展,提供模式验证

项目描述

Build Status docs pypi python license

Quart-Schema是一个Quart扩展,提供模式验证和自动生成的API文档。这在编写RESTful API时尤其有用。

Quart-Schema可以使用msgspecpydantic进行验证。

快速入门

Quart-Schema可以通过装饰器validate_querystringvalidate_requestvalidate_response来验证现有的Quart路由。它还可以使用send_asreceive_as方法验证通过WebSockets发送和接收的JSON数据。

from dataclasses import dataclass
from datetime import datetime

from quart import Quart, websocket
from quart_schema import QuartSchema, validate_request, validate_response

app = Quart(__name__)
QuartSchema(app)

@dataclass
class Todo:
    task: str
    due: datetime | None

@app.post("/")
@validate_request(Todo)
@validate_response(Todo, 201)
async def create_todo(data: Todo) -> tuple[Todo, int]:
    ... # Do something with data, e.g. save to the DB
    return data, 201

@app.websocket("/ws")
async def ws() -> None:
    while True:
        data = await websocket.receive_as(Todo)
        ... # Do something with data, e.g. save to the DB
        await websocket.send_as(data, Todo)

文档默认在/openapi.json根据OpenAPI标准提供服务,或者在/docs提供SwaggerUI界面,或者在/redocs提供redoc界面,或者在/scalar提供Scalar界面。请注意,目前没有WebSocket的文档标准。

贡献

Quart-Schema 是在 GitHub 上开发的。如果您遇到问题或有功能请求,请打开一个 问题。如果您想贡献修复或功能实现,请提出一个 合并请求(欢迎修正拼写错误)。

测试

测试 Quart-Schema 的最佳方法是使用 Tox,

$ pip install tox
$ tox

这将检查代码风格并运行测试。

帮助

Quart-Schema 的 文档 是开始的好地方,之后可以尝试搜索 Stack Overflow 或在 Gitter 上寻求帮助。如果您仍然找不到答案,请 打开一个问题

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

quart_schema-0.20.0.tar.gz (17.7 kB 查看哈希值)

上传时间 源代码

构建分发

quart_schema-0.20.0-py3-none-any.whl (19.9 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面