Skip to main content

Lightweight framework for building resource-oriented applications.

Project description

Roax

PyPI License GitHub Travis CI Codecov Black

Ro·ax /ˈɹoʊ.æks/
A lightweight Python resource-oriented framework.

Introduction

Roax is a lightweight framework for building resource-oriented applications in Python. By composing your application as a set of resources that expose operations through a uniform interface, they can be automatically exposed through a REST and/or command line interface.

Features

  • Resource operations accessed through WSGI based REST API.
  • Command-line interface to resource operations.
  • Generates OpenAPI interface description, compatible with Swagger UI.
  • Schema enforcement of resource operation parameters and return values.
  • Authorization to resource operations enforced through imperative security policies.

Quick start

Installation

pip install roax

Hello world

Here is a minimal application that responds with "Hello world!" when the client accesses http://localhost:8000/hello.

import roax.schema as schema

from roax.resource import Resource, operation
from roax.wsgi import App
from wsgiref.simple_server import make_server

class HelloResource(Resource):

    @operation(returns=schema.str(), security=[])
    def read(self):
        return "Hello world!"

app = App("/", "Hello", "1.0")
app.register_resource("/hello", HelloResource())

if __name__== "__main__":
    make_server("", 8000, app).serve_forever()

Project details


Release history Release notifications | RSS feed

This version

1.8.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

roax-1.8.0.tar.gz (34.0 kB view details)

Uploaded Source

Built Distribution

roax-1.8.0-py3-none-any.whl (38.6 kB view details)

Uploaded Python 3

File details

Details for the file roax-1.8.0.tar.gz.

File metadata

  • Download URL: roax-1.8.0.tar.gz
  • Upload date:
  • Size: 34.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.4+ Linux/5.2.0-2-amd64

File hashes

Hashes for roax-1.8.0.tar.gz
Algorithm Hash digest
SHA256 1d756e6ec535c1ecc1bd87d3771355e6a8440beb4c272872753fcd0688c1e605
MD5 640c8acfc4d77b43baac236da6daafd2
BLAKE2b-256 87ee84a7339088c7a6b7762fdeb51792bb0bf9fd6ebfe0061f2ed1d48e16cdd1

See more details on using hashes here.

File details

Details for the file roax-1.8.0-py3-none-any.whl.

File metadata

  • Download URL: roax-1.8.0-py3-none-any.whl
  • Upload date:
  • Size: 38.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.4+ Linux/5.2.0-2-amd64

File hashes

Hashes for roax-1.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b2e9d2bbca2ee49381a5c3a575d2dfd8981cc6b9dc8da99cf653d00b05fae85
MD5 8eff0b84378a2242b5c5e54d9338d8d8
BLAKE2b-256 d040f0aec503977f750dd5f4252e3ac27c2b548e09e9ba2e7678736fbaf0a585

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page