Skip to content

Python HTTP REST library including OOP-readiness and Open-API generation

License

Notifications You must be signed in to change notification settings

Rollmops/restit

Repository files navigation

RestIt

https://readthedocs.org/projects/restit/badge/?version=latest https://coveralls.io/repos/github/Rollmops/restit/badge.svg?branch=master

Python HTTP REST library including OOP-readiness and Open-API generation

For a more comprehensive documentation see: https://restit.readthedocs.io/en/latest/

Features

  • WSGI conform
  • Validation (using marshmallow)
    • query parameter validation
    • path parameter validation
    • request body validation
    • response body validation
  • OpenApi documentation generation
  • OOP-ready (no module-based global instances necessary)
  • Easy hyperlink generation
  • Exception mapping
  • Response serialization customization
  • Request deserialization customization
  • Easy to test

Quick example

from restit import Request, Resource, Response, RestItApp
from restit.decorator import path


@path("/")
class IndexResource(Resource):
    def get(self, request: Request) -> Response:
        return Response("Hello from index.")


app = RestItApp(resources=[IndexResource()])


if __name__ == "__main__":
    # start a development server on http://127.0.0.1:5000
    app.start_development_server()

You can also use a production-ready server like Gunicorn (given the name of the above module is restit_app_test.py):

gunicorn -w 4 restit_app_test:app