Version 19 (modified by Fran Boon, 8 years ago) ( diff )


Web Services

Sahana Eden exposes all it's resources as RESTful Web Services for Import/Export of XML &/or JSON. This is, of course, subject to correct authentication, where-configured.

The API is documented here: URL Format

Old Ideas

Information on alternatives is listed below: gluon/ supports easy exposing of functions to XMLRPC or JSONRPC:

(originally in T3:


from import Service
service = Service(globals())


def organisation():
    "RESTlike CRUD controller"
    return shn_rest_controller(module, 'organisation')

Can test authentication/REST using wget/curl:

Token-based authentication:

Note that most web-services clients don't support cookies & hence are stateless (no sessions support):

We can access data from the database exported as JSON (for easy use within Javascript clients) by simply calling the RESTlike controller with the var ?format=json:

/sahana/module/resource?format=json           # Lists all records of this resource
/sahana/module/resource/id?format=json        # Display record with
/sahana/module/resource/create?format=json    # ToDo
/sahana/module/resource/update/id?format=json # ToDo

Another approach (using JSONRPC e.g. with Pyjamas):

Twitter feeds as JSON:


Note: See TracWiki for help on using the wiki.