== Web Services == We want to be able to access data from the database exported as JSON for easy use within Javascript clients. This can be done by simply calling the [https://trac.sahana3.org/wiki/BluePrintREST 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 record.id==id /sahana/module/resource/create?format=json # ToDo /sahana/module/resource/update/id?format=json # ToDo }}} The underlying output functions are very easy within Web2Py since 1.55: {{{ def display_json(): "Designed to be called via AJAX to be processed within JS client." list=db(db.table.id==t2.id).select(db.table.ALL).json() response.view='plain.html' return dict(item=list) }}} ---- {{{tools.py}}} now supports easy exposing of functions to XMLRPC or JSONRPC: * http://web2py.com/examples/default/tools#services * http://groups.google.com/group/web2py/browse_thread/thread/53086d5f89ac3ae2 (originally in T3: http://groups.google.com/group/web2py/browse_thread/thread/9ec8b06b158adb75): Model: {{{ from gluon.tools import Service service=Service(globals()) }}} Controller: {{{ @service.jsonrpc @service.xmlrpc @service.amfrpc def organisation(): "RESTlike CRUD controller" return shn_rest_controller(module,'organisation') }}} ---- Another approach (using JSONRPC e.g. with [http://pyjs.org Pyjamas]): * http://mdp.cti.depaul.edu/AlterEgo/default/show/203 * http://groups.google.com/group/web2py/browse_thread/thread/9bb107c2fbd1a34b ---- DeveloperGuidelines