Skip to content

kindmachinery/flask-jsonrpc

 
 

Repository files navigation

Flask JSON-RPC

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

image

Adding Flask JSON-RPC to your application

  1. Installation
$ pip install Flask-JSONRPC

or

$ git clone git://github.com/cenobites/flask-jsonrpc.git
$ cd flask-jsonrpc
$ python setup.py install
  1. 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 'Welcome to Flask JSON-RPC'

All code of Example run.py.

  1. Running
$ python run.py
 * Running on http://0.0.0.0:5000/
  1. 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"
}

Testing your service

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.

Referencies

Dependecies

Project Information

Author

Cenobit Technologies, Inc.

Version

v0.0.1 of 2012/12/14

License

New BSD License

About

A basic JSON-RPC implementation for your Flask-powered sites

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 42.8%
  • Python 41.2%
  • CSS 16.0%