Simple and modern JSON-RPC and XML-RPC server implementation for Django
Project description
Description
Django-modern-rpc provides a simple solution to implement a remote procedure call (RPC) server as part of your Django project. It supports all major Django and Python versions.
Project’s main features are:
Simple and pythonic API
Python 2.7, 3.3, 3.4, 3.5 and 3.6
Django 1.8, 1.9, 1.10 and 1.11
XML-RPC and JSON-RPC 2.0 support (JSON-RPC 1.0 not supported)
HTTP Basic Auth support
Custom authentication support
Automatic protocol detection based on request’s Content-Type header
High-level error management 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
Use pip to install the package in your environment:
pip install django-modern-rpc
Add it to your Django applications, in settings.py:
INSTALLED_APPS = [ ... 'modernrpc', ]Declare an entry point, a view generating correct RPC responses to incoming requests:
# In myproject/rpc_app/urls.py from django.conf.urls import url from modernrpc.views import RPCEntryPoint urlpatterns = [ url(r'^rpc/', RPCEntryPoint.as_view()), ]Use @rpc_method to register a global function in django-modern-rpc registry:
# In myproject/rpc_app/rpc_methods.py from modernrpc.core import rpc_method @rpc_method def add(a, b): return a + bDeclare 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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django-modern-rpc-0.9.0.tar.gz.
File metadata
- Download URL: django-modern-rpc-0.9.0.tar.gz
- Upload date:
- Size: 24.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80b43826bf9d9d634eed0ad524691248e9a22db578454188c7be9b08de7733fa
|
|
| MD5 |
58df19035879b4cca831be52f3fcdabf
|
|
| BLAKE2b-256 |
7df5cead1f45d29fad2da4645d381935368b6e02bc178667b9d49de06e9e765b
|
File details
Details for the file django_modern_rpc-0.9.0-py2.py3-none-any.whl.
File metadata
- Download URL: django_modern_rpc-0.9.0-py2.py3-none-any.whl
- Upload date:
- Size: 29.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7358743d6c23b24fca87247e6a58593007a159f1cc09545a6ec51bfac9ba848
|
|
| MD5 |
d9dd950a8e97021c45fe7d0c8da7317e
|
|
| BLAKE2b-256 |
99862859cacc3de6e98fbdf8178bbaf4f6209a35540258dfdd378b74c7f588c5
|