Version 3 (modified by 14 years ago) ( diff ) | ,
---|
Table of Contents
s3_rest_controller
Introduction
The so-called REST Controller (function s3_rest_controller) is a helper function to easily apply the RESTful API of the S3Resource class to your controller.
s3_rest_controller does:
- parse and execute the incoming HTTP request on the specified resource
- populate and hand-over additional view components
- choose and set the response view template (response.view)
Syntax
output = s3_rest_controller(prefix, resourcename, **attr)
- prefix is the application prefix of the resource
- resourcename is the name of the resource (without prefix)
- attr are any additional view components
- output contains the result of the request and can be returned from the controller as-is
- in interactive view formats, this is a dict of variables for the view
Additional View Components
Additional named arguments in the s3_rest_controller call control the output dict after the request has been executed:
- any callable argument will be invoked with the S3Request as first and only argument, and its return value will be added to the output dict instead
- any non-callable argument which is not None is added to the output dict as-is
- any argument that gives None will remove this key from the output dict
A typical use-case is rheader:
def my_rheader(r): if r.interactive and r.component: # Code producing the rheader... return rheader else: return None output = s3_rest_controller(prefix, name, rheader=my_rheader)
In this case, the rheader variable is only added to the output when the my_rheader function returns something else than None.
Note:
See TracWiki
for help on using the wiki.