This release is a pre-release and may not be stable for production use.
Serve JSON-RPC requests from Zope2.
Documentation
The product patches the publisher to serve JSON/RPC requests from within Zope2. It is based on:
original product for earlier versions of Zope2 by Balazs Ree
jsonserver for zope3 by Jim Washington jwashin@vt.edu and Contributors
ZPublisher/xmlrpc.py
JSON is javascript object notation. JSON-RPC performs the same service as XML-RPC, except the format is javascript script objects instead of XML, and the content-type is ‘application/json-rpc’ instead of ‘text/xml’.
This project overrides some base zope2 code to provide the additional functionality of listening and responding properly to requests of type “application/json”.
The product was tested with Zope 2.10 and Zope 2.13
Installation:
Add this egg to your Zope/Plone buildout.
Usage:
Similar to xmlrpc usage.
jsonserver looks for content-type “application/json”, and handles those requests as JSON-RPC. Other http requests are not affected and will presumably work as expected.
For communication other than in a web browser (javascript), simplejson or other json implementations have functions for reading and writing JSON objects.
The text of a JSON-RPC request looks like:
{'id':jsonid,''method':remotemethod,'params':methodparams}
where:
o jsonid is a string or number that may identify this specific request
o remotemethod is the method to call on the server
o methodparams is a list(javascript Array) of parameters to the method
The text of a JSON-RPC response looks like:
{'id':jsonid,''result':returnedresult,'error':returnederr}
where:
o jsonid is the same jsonid as sent in the request
o returnedresult is a javascript representation of the result or null
o returnederr is a javascript representation of an error state
Either returnedresult or returnederr will be the javascript null value.
Actual implementation using e.g., urllib is left as an exercise for the reader. Hint: Use the minjson.write(object) and minjson.read(string) methods for conversion before and after transport.
Five extensions
The “json” namespace (http://namespaces.zope.org/json) defines the page and pages directives. json:page is identical to browser:page in the usage, but the page or method declared is allowed to be called up in a json request, but will be invisible for normal requests.
browser:page and browser:pages declarations will be available to both normal and json requests.
json:page declarations will be callable from code and their macros will be visible from other templates.
<json:page
name="myjsonrpcview"
for="*"
class=".jsonrpc.MyJsonRpcView"
permission="zope2.ViewManagementScreens"
/>
Code:
The code of the product can be found at: https://bitbucket.org/tomgross/products.jsonserver
Change history
1.2b6 (2013-06-17)
Plone 4.3 compatibility [rristow]
1.2b5 (2012-03-21)
Include zcml files in Manifest.in [tom_gross]
1.2b4 (2012-03-21)
Another Manifest.in fix [tom_gross]
1.2b3 (2012-03-21)
Added Manifest.in and fixed broken egg [tom_gross]
1.2b2 (2012-03-20)
Use simplejson/json instead of minjson implementation [tom_gross]
Allow utf-8 as input encoding only [tom_gross]
Zope 2.13 compatibility [tom_gross]
Fixed issue occured if used with diazo [tom_gross]
1.2b1 (2011-10-07)
fixed content-type with charset [tom_gross, thanks Steve Spicklemire]
changed has_key with __contains__ calls [tom_gross]
fixed sending of unauthorized status [tom_gross]
return error object according to the JSON-RPC specification http://json-rpc.org/wd/JSON-RPC-1-1-WD-20060807.html#ErrorObject [tom_gross, thanks Steve Spicklemire]
1.2a1 (2010-07-15)
fixes for Zope 2.10
moved from old product from http://www.zope.org/Members/ree/jsonserver2 [tom_gross]
Contributors
Tom Gross, Author
Balazs Ree
Rodrigo Ristow
Release files for Products.jsonserver 1.2b6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| Products.jsonserver-1.2b6.zip | 22.2 kB | Details |
Release files / Products.jsonserver-1.2b6.zip
| Download URL | Products.jsonserver-1.2b6.zip |
|---|---|
| Size | 22.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1d24506f16d294db40f08ffca3bdc81d77e385470c10ba1af68a026f372a601f
|
|
BLAKE2b-256 checksum How to use checksums |
0fcaf0db6c95ae684f1d91aa63aa3be4cb06a45ad8e0835e0f9f005368c0e4b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |