定义REST API以访问和管理Zope 2内容
项目描述
infrae.rest 提供了一种简单的方式来编写Zope 2中的REST API。
API
REST组件
infrae.rest 主要提供了一个基类 REST,其行为类似于Grok视图
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)
您只需将您的包与Grok结合即可使其可用。
您可以提供: POST、GET、HEAD、DELETE 请求。
您可以使用 grok.name、grok.require 和 grok.context 指令来配置您的REST API。它们的工作方式与 grok.View 完全相同。
如果您需要,可以使用 infrae.rest.queryRESTComponent 手动查询REST组件。
嵌套REST组件
您可以嵌套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](https://hg.infrae.com/infrae.rest)
变更
1.3 (2013-05-23)
在 RESTWithTemplate 组件中添加对 static 的支持。
更新测试。
1.2 (2012-09-04)
将处理程序的注册表从 zope.component 更改为 zeam.component。这简化了代码库并增加了灵活性。公开 queryRESTComponent 函数。
由于在最近的Zope 2版本中存在错误,因此删除了对Zope 2 shiftNameToApplication 的使用。
1.1 (2011-11-07)
添加对嵌套处理程序的支持。
添加对 absoluteURL 的支持,以便获取处理程序的URL。
添加一个默认组件,该组件与Grok模板相关联。您必须自行触发模板渲染。
当处理程序发布时,会触发一个事件。如果处理程序嵌套,则仅对最后一个触发事件。您可以在遍历事件之后将其视为发布者,除非您可以访问已发布的关联处理程序。
我们现在只使用Python本地的json模块(不再使用simplejson)。
1.0.1 (2010-10-07)
不要将响应定义为属性,以与其他Zope视图(作为混合)兼容。
1.0 (2010-07-15)
初始发布
项目详情
infrae.rest-1.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ecf0d576836289b7a973e7f74ee03ab2effbf872bf94d4276110e1ef11279200 |
|
MD5 | 831ee45ed271ffb8f624a8fe65d29777 |
|
BLAKE2b-256 | 1b27336680d1783cb5ac0507acc2ba16e7d2486199a6cff42fc7787fe0add8de |