Python JSON-RPC Client Server Library - Simple To Use Python JSONRPC-Library
Project description
Installation
pip install python-jsonrpc
HTTP Client Example
#!/usr/bin/env python
# coding: utf-8
import pyjsonrpc
http_client = pyjsonrpc.HttpClient(
url = "http://example.com/jsonrpc",
username = "Username",
password = "Password"
)
print http_client.call("add", 1, 2)
# Result: 3
# It is also possible to use the *method* name as *attribute* name.
print http_client.add(1, 2)
# Result: 3
# Notifications send messages to the server, without response.
http_client.notify("add", 3, 4)
HTTP Server Example
#!/usr/bin/env python
# coding: utf-8
import pyjsonrpc
class RequestHandler(pyjsonrpc.HttpRequestHandler):
@pyjsonrpc.rpcmethod
def add(self, a, b):
"""Test method"""
return a + b
# Threading HTTP-Server
http_server = pyjsonrpc.ThreadingHttpServer(
server_address = ('localhost', 8080),
RequestHandlerClass = RequestHandler
)
print "Starting HTTP server ..."
print "URL: http://localhost:8080"
http_server.serve_forever()
CGI Example
#!/usr/bin/env python
# coding: utf-8
import pyjsonrpc
def add(a, b):
"""Test function"""
return a + b
# Handles the JSON-RPC request and gets back the result to STDOUT
pyjsonrpc.handle_cgi_request(methods = dict(add = add))
Library Usage Example
#!/usr/bin/env python
# coding: utf-8
import pyjsonrpc
class JsonRpc(pyjsonrpc.JsonRpc):
@pyjsonrpc.rpcmethod
def add(self, a, b):
"""Test method"""
return a + b
# 1. Initialize JSON-RPC class
rpc = JsonRpc()
# 2. Create JSON-RPC string with parameters (= request string)
request_json = pyjsonrpc.create_request_json("add", 1, 2)
# request_json = '{"method": "add", "params": [1, 2], "id": "...", "jsonrpc": "2.0"}'
# 3. Call the JSON-RPC function and get back the JSON-RPC result (= response string)
response_json = rpc.call(request_json)
# response_json = '{"result": 3, "id": "...", "jsonrpc": "2.0"}'
# 4. Convert JSON-RPC string to Python objects
response = pyjsonrpc.parse_response_json(response_json)
# 5. Print result or error
if response.error:
print "Error:", response.error.code, response.error.message
else:
print "Result:", response.result
CherryPy Example
#!/usr/bin/env python
# coding: utf-8
import cherrypy
from pyjsonrpc.cp import CherryPyJsonRpc, rpcmethod
class Root(CherryPyJsonRpc):
@rpcmethod
def add(self, a, b):
"""Test method"""
return a + b
index = CherryPyJsonRpc.request_handler
print "Starting HTTP server ..."
print "URL: http://localhost:8080"
cherrypy.quickstart(Root())
Licenses
GNU Library or Lesser General Public License (LGPL)
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
python-jsonrpc-0.7.10.tar.gz
(18.4 kB
view details)
Built Distribution
File details
Details for the file python-jsonrpc-0.7.10.tar.gz
.
File metadata
- Download URL: python-jsonrpc-0.7.10.tar.gz
- Upload date:
- Size: 18.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6645eeaf3760f2cfddaf6a1b768ac81f4d047e328e133fa7aae3d2ed44a2521b |
|
MD5 | 7edd99673206a0243219912047d5fe93 |
|
BLAKE2b-256 | 15207d936318849788cdfb29a917d37f207d136250aec84c3f674b25898eb225 |
File details
Details for the file python_jsonrpc-0.7.10-py2-none-any.whl
.
File metadata
- Download URL: python_jsonrpc-0.7.10-py2-none-any.whl
- Upload date:
- Size: 16.3 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e4aed0c8f10a3466a8f7f0170b5a58551520ee9e99ba546876c2c43db9e9470 |
|
MD5 | 3e5113400c43a454387cc08bc0c82bf3 |
|
BLAKE2b-256 | 7a4b06983c5132db6cd729c79a5960d59e2b0f1956a8b83834dc74ca1fcda4af |