定义一个rest api来访问和管理zope 2内容
infrae.rest的Python项目详细描述
infrae.rest提供了在zope 2中编写restapi的简单方法。
API
其余部分
infrae.rest主要提供一个基类REST,它的行为 很像一个怪诞的景象:
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)
你只要摸摸你的包裹就可以了。
- 您可以提供:POST,GET,HEAD,DELETE请求。
- 您可以使用指令grok.name,grok.require和 grok.context来配置rest api。它们的工作原理和 在grok.View上。
- 如果需要,可以使用帮助手动查询rest组件 总共infrae.rest.queryRESTComponent。
嵌套休息组件
您可以嵌套rest组件。你应该使用grok指令 调整以定义哪个是父处理程序,以及 上下文:
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组件
您也可以使用基类RESTWithTemplate。这个 唯一的区别是你的类将与grok关联 自动模板。
存储库
来源可以在Mercurial中找到:https://hg.infrae.com/infrae.rest
更改
1.3(2013-05-23)
- 在RESTWithTemplate组件上添加对static的支持。
- 更新测试。
1.2(2012-09-04)
- 将处理程序的注册表从zope.component更改为 zeam.component。这简化了代码库并带来了更多 灵活性。公开queryRESTComponent函数。
- 删除zope 2shiftNameToApplication的用法,因为这是错误的 在最近的zope 2版本中。
1.1(2011-11-07)
- 添加对嵌套处理程序的支持。
- 添加对absoluteURL的支持,以便获取处理程序的url。
- 添加与grok模板关联的默认组件。你 必须自己触发模板渲染。
- 在发布处理程序时触发事件。如果处理者 如果是嵌套的,则只触发最后一个事件。你可以 在遍历事件后作为发布者查看,但您可以访问 已发布的关联处理程序。
- 我们现在只使用python本机json模块(不再使用 simplejson)。
1.0.1(2010-10-07)
1.0(2010-07-15)
- 初始版本