django-modern-rpc
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.
Metadata
Release files for django-modern-rpc 0.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django-modern-rpc-0.9.0.tar.gz | 24.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_modern_rpc-0.9.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 53.8 kB
Release files / django-modern-rpc-0.9.0.tar.gz
| Download URL | django-modern-rpc-0.9.0.tar.gz |
|---|---|
| Size | 24.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
80b43826bf9d9d634eed0ad524691248e9a22db578454188c7be9b08de7733fa
|
|
BLAKE2b-256 checksum How to use checksums |
7df5cead1f45d29fad2da4645d381935368b6e02bc178667b9d49de06e9e765b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / django_modern_rpc-0.9.0-py2.py3-none-any.whl
| Download URL | django_modern_rpc-0.9.0-py2.py3-none-any.whl |
|---|---|
| Size | 29.0 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
d7358743d6c23b24fca87247e6a58593007a159f1cc09545a6ec51bfac9ba848
|
|
BLAKE2b-256 checksum How to use checksums |
99862859cacc3de6e98fbdf8178bbaf4f6209a35540258dfdd378b74c7f588c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |