Simple and modern JSON-RPC and XML-RPC server implementation for Django
Project description
Description
django-modern-rpc is a free, lightweight RPC server for Django projects. The library is available on PyPi.
XML-RPC and JSON-RPC 2.0 support. Please note that JSON-RPC 1.0 is not supported.
Python 2.7, 3.3, 3.4, 3.5 and 3.6
Django 1.8, 1.9, 1.10 and 1.11
HTTP Basic Auth support
Custom authentication support
Automatic protocol detection based on the request’s Content-Type
High-level error handling based on exceptions
Multiple entry points, with specific methods and protocol attached
RPC Methods documentation generated automatically, based on docstrings
System introspection methods:
system.listMethods()
system.methodSignature()
system.methodHelp()
system.multicall() (XML-RPC only, using specification from https://mirrors.talideon.com/articles/multicall.html)
Quick start
Install the library using pip:
pip install django-modern-rpc
Add it to your Django applications, in settings.py:
INSTALLED_APPS = [
#...
'modernrpc',
#...
]
Declare an entry point, a view generating a correct RPC response to the incoming request:
# In myproject/rpc_app/urls.py
from django.conf.urls import url
from modernrpc.views import RPCEntryPoint
urlpatterns = [
url(r'^rpc/', RPCEntryPoint.as_view()),
]
Decorate the methods you want to provide via RPC calls:
# In myproject/rpc_app/rpc_methods.py
from modernrpc.core import rpc_method
@rpc_method
def add(a, b):
return a + b
Declare the list of python modules containing your RPC methods, in settings.py:
MODERNRPC_METHODS_MODULES = [
'rpc_app.rpc_methods'
]
Now, you can call the method add from a client:
>>> from xmlrpc.client import ServerProxy
>>> client = ServerProxy('http://localhost:8000/rpc/')
>>> print(client.add(2, 3))
5
For more information, please read the full documentation.
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
Built Distribution
Hashes for django_modern_rpc-0.5.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 102c27d385c63974c4497ec062baae717a9f6fc9ead84aa5414a4d1bc8add620 |
|
MD5 | 7493b6e8c4e83bbc53a8445fc47dbc86 |
|
BLAKE2b-256 | 17fe2723c85689046e433c13d4bccc579006187289739b8f03e5937d083af6e3 |