/Tornado-JSON

A simple JSON API framework based on Tornado

Primary LanguagePythonMIT LicenseMIT

Tornado-JSON

Join the chat at https://gitter.im/hfaran/Tornado-JSON

Build Status Coverage Status Documentation Status

Latest Version Supported Python versions Development Status Download format License

Overview

Tornado-JSON is a small extension of Tornado with the intent of providing the tools necessary to get a JSON API up and running quickly.

Some of the key features the included modules provide:

  • Input and output JSON Schema validation by decorating RequestHandlers with @schema.validate
  • Automated route generation with routes.get_routes(package)
  • Automated GFM-formatted API documentation using schemas and provided descriptions
  • Standardized JSON output using the JSend specification

Usage

Check out the Hello World demo for a quick example and the accompanying walkthrough in the documentation. And then explore Tornado-JSON on readthedocs for the rest!

import tornado.ioloop
from tornado_json.routes import get_routes
from tornado_json.application import Application

import mywebapp


 # Automatically generate routes for your webapp
routes = get_routes(mywebapp)
# Create and start application
application = Application(routes=routes, settings={})
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()

Example Projects That Use Tornado-JSON

Installation

  • For the possibly stable
pip install Tornado-JSON
  • For the latest and greatest
git clone https://github.com/hfaran/Tornado-JSON.git
cd Tornado-JSON
python setup.py develop

Contributing

If there is something you would like to see improved, you would be awesome for opening an issue about it, and I'll promise my best to take a look.

Pull requests are absolutely welcome as well!

License

This project is licensed under the MIT License.

Running Tests

sudo pip2 install tox
sudo pip3 install tox
tox  # Will run test matrix