Helpers for handling jsonhome documents
Project description
Helpers for handling jsonhome documents
Free software: Apache license
Documentation: https://readthedocs.org/projects/jsonhome
Introduction
The jsonhome library provides a simple way to build and consume compliant json-home documents.
Building
To build a jsonhome document you create a document and then add resources:
>>> import jsonhome >>> doc = jsonhome.Document() >>> doc.add_resource('http://mysite.com/rel/widgets', ... uri='/widgets{/widget_id}' ... uri_vars={'widget_id': 'http://mysite.com/param/widget'}, ... allow_get=True, ... accept_post=['application/json']) >>> print(doc.to_json()) { "resources": { "http://mysite.com/rel/widgets": { "href-template": "/widgets{/widget_id}", "href-vars": { "widget_id": "http://mysite.com/param/widget" }, "hints": { "accept-post": [ "application/json" ], "allow": [ "GET", "POST" ] } } } }
Additional parameters to creating resources can be found on the module documentation.
Consuming
To consume a json-home document you load it and then fetch the URIs you need:
>>> doc = jsonhome.Document.from_json(data) >>> print(doc.get_uri('http://mysite.com/rel/widgets', widget_id='1234') '/widgets/1234'
Or for specific information you can find helpers on the resource:
>>> print(doc['http://mysite.com/rel/widgets'].href_vars) {"widget_id": "http://mysite.com/param/widget"}