aiohttp.web OpenAPI 3 schema first server applications.
项目描述
使用schema first方法实现aiohttp.web OpenAPI 3服务器应用程序。
以及其他一系列实用工具,以Python 3和aiohttp.web构建有效的服务器应用程序。
支持 Python 3.8+
与 aiohttp.web 3.8.1+ 兼容
BSD 许可
源代码、问题和拉取请求请访问 GitHub
快速入门
rororo 依赖于有效的 OpenAPI 3 规范文件(支持 JSON 或 YAML 格式)。
以下示例展示了如何从 openapi.yaml 规范文件中处理 hello_world 操作。
from pathlib import Path
from aiohttp import web
from rororo import (
openapi_context,
OperationTableDef,
setup_openapi,
)
operations = OperationTableDef()
@operations.register
async def hello_world(request: web.Request) -> web.Response:
with openapi_context(request) as context:
name = context.parameters.query.get("name", "world")
email = context.parameters.query.get(
"email", "world@example.com"
)
return web.json_response(
{"message": f"Hello, {name}!", "email": email}
)
def create_app(argv: list[str] = None) -> web.Application:
return setup_openapi(
web.Application(),
Path(__file__).parent / "openapi.yaml",
operations,
server_url="/api",
)
Schema 首选方法
与 Django REST Framework、FastAPI、flask-apispec 或 aiohttp-apispec 等其他流行的 Python OpenAPI 3 解决方案不同,rororo 需要 您首先提供有效的 OpenAPI 3 规范。这使得 rororo 与 connexion、pyramid_openapi3 和其他基于规范的库相似。
基于类的视图
rororo 还支持 基于类的视图。Todo-Backend 示例说明了如何使用基于类的视图来构建 OpenAPI 3 服务器。
在下面的代码片段中,rororo 预期 OpenAPI 3 规范包含操作 ID UserView.get。
@operations.register
class UserView(web.View):
async def get(self) -> web.Response: ...
更多示例
查看 examples 文件夹,了解如何构建 aiohttp.web OpenAPI 3 服务器应用程序的其他示例。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
rororo-3.3.0.tar.gz (38.4 kB 查看哈希值)
构建分布
rororo-3.3.0-py3-none-any.whl (43.8 kB 查看哈希值)