Skip to main content

Adds JSONRPC support to Flask.

Project description

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

Project details


Download files

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

Source Distribution

Flask-JSONRPC-3.0.1.tar.gz (762.7 kB view hashes)

Uploaded Source

Built Distributions

Flask_JSONRPC-3.0.1-py2.py3-none-any.whl (759.6 kB view hashes)

Uploaded Python 2 Python 3

Flask_JSONRPC-3.0.1-cp312-cp312-win_amd64.whl (919.9 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

Flask_JSONRPC-3.0.1-cp312-cp312-musllinux_1_1_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

Flask_JSONRPC-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

Flask_JSONRPC-3.0.1-cp312-cp312-macosx_10_9_x86_64.whl (920.2 kB view hashes)

Uploaded CPython 3.12 macOS 10.9+ x86-64

Flask_JSONRPC-3.0.1-cp311-cp311-win_amd64.whl (918.7 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

Flask_JSONRPC-3.0.1-cp311-cp311-musllinux_1_1_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

Flask_JSONRPC-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

Flask_JSONRPC-3.0.1-cp311-cp311-macosx_10_9_x86_64.whl (917.9 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page