OpenAPI 3 schema support for aiohttp.web applications.
Project description
OpenAPI 3 schema support for aiohttp.web applications.
As well as bunch other utilities to build effective web applications with Python 3 & aiohttp.web.
Works on Python 3.6+
BSD licensed
Source, issues, and pull requests on GitHub
Important
2.0.0 version still in development. To install it use,
pip install rororo==2.0.0rc0
or,
poetry add rororo==2.0.0rc0
Quick Start
rororo relies on valid OpenAPI schema file (both JSON or YAML formats supported).
Example below, illustrates on how to handle operation hello_world from openapi.yaml schema file.
from pathlib import Path
from typing import List
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")
return web.json_response({"message": f"Hello, {name}!"})
def create_app(argv: List[str] = None) -> web.Application:
app = web.Application()
setup_openapi(
app,
Path(__file__).parent / "openapi.yaml",
operations,
route_prefix="/api",
)
return app
Class Based Views
rororo supports class based views as well. Todo-Backend example illustrates how to use class based views for OpenAPI handlers.
In snippet below, rororo expects that OpenAPI schema contains operation ID UserView.get,
@operations.register
class UserView(web.View):
async def get(self) -> web.Response:
...
More Examples
Check examples folder to see other examples on how to use OpenAPI 3 schemas with aiohttp.web applications.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for rororo-2.0.0rc0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17904c15b0b5a2a84c4d0f14b5cb85100d095a2269e110b690e85ad4d9aa2ab5 |
|
MD5 | 06a33e38cd19b2450a4dafea819729eb |
|
BLAKE2b-256 | 316d904d560a213b166bd8558e7a4e187e4f936d2abc319b3ecd11c6849c82f2 |