Quart扩展,提供模式验证
项目描述
Quart-Schema是一个Quart扩展,提供模式验证和自动生成的API文档。这在编写RESTful API时尤其有用。
Quart-Schema可以使用msgspec或pydantic进行验证。
快速入门
Quart-Schema可以通过装饰器validate_querystring
、validate_request
或validate_response
来验证现有的Quart路由。它还可以使用send_as
和receive_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 查看哈希值)
关闭
quart_schema-0.20.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9e2ec72f4b781e81f6e298d0a8a873f299b0c8dd81d14ade31e24d3d9483233c |
|
MD5 | 23ce879d559692f1f2b0680dff6f9134 |
|
BLAKE2b-256 | 183472f2dec4fc199cce27110581a1380c78e9fb697d98e70e50a46ad0c39344 |
关闭
quart_schema-0.20.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 03d4ba12e1e37d81fe580db0f40e0ca11edf30099ad661fd5a97ead7c89eb644 |
|
MD5 | fcf219676df3bee30b2817ae7b5e7c11 |
|
BLAKE2b-256 | b19190eb1c1c4e0b8733de3d17411bac8063fc4387585d748bc2deaec27a4b81 |