infrae.rest
infrae.rest provide a simple way to write REST APIs in Zope 2.
API
REST component
infrae.rest provides mainly a base class REST which behave a lot like a Grok view:
from infrae.rest import REST
class MyAction(REST):
"""My action REST API.
"""
def POST(self, name, value):
# Called by POST /content/++rest++myaction&name=foo?value=bar
return 'Success'
def GET(self):
# Called by GET /content/++rest++myaction
values = self.context.something()
return self.json_response(values)
You just have to grok your package to make it available.
- You can provide: POST, GET, HEAD, DELETE requests.
- You can use the directives grok.name, grok.require and grok.context to configure your REST API. They work exactly like on a grok.View.
Nesting REST component
You can nest REST component. In that you should use the grok directive adapts in order to define which is the parent handler, and the context:
from infrae.rest import REST
from five import grok
from OFS.Folder import Folder
class ParentHandler(REST):
grok.context(Folder)
def GET(self):
# Called by GET /folder/++rest++parenthandler
return u'Hello'
class ChildHandler(REST):
grok.adapts(ParentHandler, Folder)
def GET(self):
# Called by GET /folder/++rest++parenthandler/childhandler
return u'Child
RESTWithTemplate component
You can alternatively use the base class RESTWithTemplate. The only difference is that your class will be associated to a Grok template automatically.
| Release version | Release date | Release files |
|---|---|---|
| infrae.rest 1.1 | 07 nov 2011 13:35 |
infrae.rest-1.1.tar.gz |
| infrae.rest 1.0.1 | 07 oct 2010 15:22 |
infrae.rest-1.0.1.tar.gz |
| infrae.rest 1.0 | 15 jul 2010 18:30 |
infrae.rest-1.0.tar.gz |
License: New BSD