CI Workflow pre-commit Latest Version Python versions BSD License Coverage Documentation

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


2.0.0 version still in development. To install it use,

pip install rororo==2.0.0b3


poetry add rororo==2.0.0b3

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()

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()
        Path(__file__).parent / "openapi.yaml",
    return app

Check examples folder to see other examples on how to use OpenAPI 3 schemas with aiohttp.web applications.


rororo is licensed under the terms of BSD-3-Clause License.