This is Flask JSON-RPC with support for flask-async.
Requires:
- Python 3.4+
- aiohttp
- Flask-Async
Usage changes: Basically just decorate your methods with @asyncio.coroutine:
@jsonrpc.method('test') @asyncio.coroutine def test_method(params): pass
A basic JSON-RPC implementation for your Flask-powered sites based on django-json-rpc.
Some reasons you might want to use:
- Simple, powerful, flexible and pythoic API.
- Support python 2.7, 3.3 or later
- The Web browseable API.
- Support for authentication.
- Proxy to test your JSON Service.
- Run-time type checking.
- Extensive documentation, and great community support.
For support python 2.6.5+ or earlier use the branch py2k.
There is a live example API for testing purposes, available here.
Below: Screenshot from the browsable API
- Installation
$ pip install Flask-JSONRPC
or
$ git clone git://github.com/cenobites/flask-jsonrpc.git $ cd flask-jsonrpc $ python setup.py install
- Getting Started
Create your application and initialize the Flask-JSONRPC.
from flask import Flask from flask_jsonrpc import JSONRPC app = Flask(__name__) jsonrpc = JSONRPC(app, '/api')
Write JSON-RPC methods.
@jsonrpc.method('App.index') def index(): return u'Welcome to Flask JSON-RPC'
All code of Example run.py.
- Running
$ python run.py * Running on http://0.0.0.0:5000/
- Testing
$ curl -i -X POST -d '{"jsonrpc": "2.0", "method": "App.index", "params": {}, "id": "1"}' http://localhost:5000/api HTTP/1.0 200 OK Content-Type: application/json Content-Length: 77 Server: Werkzeug/0.8.3 Python/2.7.3 Date: Fri, 14 Dec 2012 19:26:56 GMT { "jsonrpc": "2.0", "id": "1", "result": "Welcome to Flask JSON-RPC" }
You can test your service using the provided web browsable API, available at http://localhost:5000/api/browse (if using the url patterns from above) or with the included ServiceProxy:
>>> from flask_jsonrpc.proxy import ServiceProxy >>> server = ServiceProxy('http://localhost:5000/api') >>> >>> server.App.index() {'jsonrpc': '2.0', 'id': '91bce374-462f-11e2-af55-f0bf97588c3b', 'result': 'Welcome to Flask JSON-RPC'}
We add the jsonrpc_version
variable to the request object. It be either '1.0', '1.1' or '2.0'. Arg.
For more tests see Examples.
- http://docs.python.org/
- http://flask.pocoo.org/docs/
- http://lucumr.pocoo.org/2011/1/22/forwards-compatible-python/
- http://flask.pocoo.org/docs/python3/#python3-support
- http://www.jsonrpc.org/
� Dependecies *******
See Above
Author: | Cenobit Technologies, Inc. |
---|---|
Version: | v0.0.1 of 2012/12/14 |
License: | New BSD License |