Flask-JSONRPC

Adds JSONRPC support to Flask.


Keywords
flask, flask-extensions, jsonrpc, python
License
Other
Install
pip install Flask-JSONRPC==3.0.1

Documentation

Release Status Tests Status Coverage Status Documentation Status

Flask JSON-RPC

Basic JSON-RPC implementation for your Flask-powered sites.

Some reasons you might want to use:

  • Simple, powerful, flexible, and pythonic API.
  • Support JSON-RPC 2.0 version.
  • Support Python 3.8 or later.
  • Experimental support to Mypyc, it compiles Python modules to C extensions.
  • The web browsable API.
  • Run-time type checking functions defined with PEP 484 argument (and return) type annotations.
  • Extensive documentation, and great community support.

There is a live example API for testing purposes, available here.

Below: Screenshot from the browsable API

Web browsable API

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("application")
jsonrpc = JSONRPC(app, "/api", enable_web_browsable_api=True)

Write JSON-RPC methods.

@jsonrpc.method("App.index")
def index() -> str:
    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 \
   -H "Content-Type: application/json; indent=4" \
   -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"
}

References