Tornado_jsonapi is a Python 3.3+ library for creating JSON API (as per jsonapi.org specification) using Tornado web framework. It features
- semi-automatic API generation using provided JSON schema of resource;
- support for arbitrary data sources, including SQLAlchemy and PostgreSQL (via DBAPI2 support layer);
- support for asynchronous data source operations;
- strict jsonapi.org specification conformance.
import sqlite3 import tornado.ioloop import tornado.web import tornado_jsonapi.handlers import tornado_jsonapi.resource schema = { "title": "post", "properties": { "text": { "type": "string" }, "author": { "type": "string" } } } res = tornado_jsonapi.resource.DBAPI2Resource( schema, sqlite3, sqlite3.connect(':memory:')) res._create_table() application = tornado.web.Application([ ( r"/api/posts/([^/]*)", tornado_jsonapi.handlers.APIHandler, dict(resource=res) ) ]) application.listen(8888) tornado.ioloop.IOLoop.current().start()$ pip install tornado_jsonapihttps://tornado_jsonapi.readthedocs.org
a.k.a. TODO
- improve documentation 😔
- automatic API doc generation based on JSON schema;
- MongoDB/Motor support;
- support for API testing.
This project is licensed under the MIT License.