Over-simple JSON-RPC Python implementation for aiohttp
Project description
Over-Simple JSON RPC Implementation
Over-simple JSON-RPC Python implementation for aiohttp
Install
pip install osjsonrpc
Usage
Example:
from aiohttp import web
from osjsonrpc import JsonRpcEndpoint
def ping():
return "pong"
def multiply(a, b):
return {"a": a, "b": b, "a*b": a * b}
rpc = (
JsonRpcEndpoint()
.register_method(ping)
.register_method(multiply)
)
app = web.Application()
app.add_routes([rpc.route("/api")])
web.run_app(app)
Call the ping
method without arguments:
~ curl -s -H "Content-Type: application/json" -H "Accept: application/json" -X POST \
-d '{"jsonrpc":"2.0", "method": "ping", "id": 1}' \
http://localhost:8080/api | jq
{
"jsonrpc": "2.0",
"result": "pong",
"id": 1
}
Call the multiply
with a couple of positional arguments:
~ curl -s -H "Content-Type: application/json" -H "Accept: application/json" -X POST \
-d '{"jsonrpc":"2.0", "method": "multiply", "params": [3, 5], "id": 1}' \
http://localhost:8080/api | jq
{
"jsonrpc": "2.0",
"result": {
"a": 3,
"b": 5,
"a*b": 15
},
"id": 1
}
Call the ping
argument with invalid keyword argument:
~ curl -s -H "Content-Type: application/json" -H "Accept: application/json" -X POST \
-d '{"jsonrpc":"2.0", "method": "ping", "params": {"key": "value"}, "id": 1}' \
http://localhost:8080/api | jq
{
"jsonrpc": "2.0",
"error": {
"code": -32602,
"message": "Invalid params",
"data": {
"detail": "TypeError: ping() got an unexpected keyword argument 'key'",
"request": {
"jsonrpc": "2.0",
"method": "ping",
"params": {
"key": "value"
},
"id": 1
}
}
},
"id": 1
}
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
osjsonrpc-0.2.3.tar.gz
(5.2 kB
view details)
Built Distribution
File details
Details for the file osjsonrpc-0.2.3.tar.gz
.
File metadata
- Download URL: osjsonrpc-0.2.3.tar.gz
- Upload date:
- Size: 5.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.3 CPython/3.6.9 Darwin/19.3.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39a20fac621bd5f7538d6baa40f8fb7c91863e2d4b0539aedb33430a85f0b96d |
|
MD5 | aa22bff4377f4e5b533170bc82c839a5 |
|
BLAKE2b-256 | 770a85ad2e427f350a7e6cac8dc49cf23f2a5416c02fa9225628584ba737fdd3 |
File details
Details for the file osjsonrpc-0.2.3-py3-none-any.whl
.
File metadata
- Download URL: osjsonrpc-0.2.3-py3-none-any.whl
- Upload date:
- Size: 5.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.3 CPython/3.6.9 Darwin/19.3.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df9397d09c57b072acd82988eb11b78495a55f09cf39ad35fb03f4d3c52bab3b |
|
MD5 | 724d6c3267e052779868c80c0b89ba0d |
|
BLAKE2b-256 | ea405d7455d6b043b1ec1812e3cbd3d0e980d5f3e808ccf4c8abdaa54ca7fc4b |