Skip to main content

Adds JSONRPC support to Flask.

Project description

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.2, 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

https://f.cloud.github.com/assets/298350/1575590/203c595a-5150-11e3-99a0-4a6fd9bcbe52.png

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.

Dependecies

Project Information

Author:Cenobit Technologies, Inc.
Version:v0.0.1 of 2012/12/14
License:New BSD License

Project details


Release history Release notifications

History Node

0.3.1

History Node

0.3

This version
History Node

0.2

History Node

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
Flask-JSONRPC-0.2.tar.gz (677.8 kB) Copy SHA256 hash SHA256 Source None Mar 28, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page