一个支持REST的请求,用于在repoze.bfg中实现RESTful应用程序
项目描述
介绍
repoze.bfg.restrequest 实现了4种额外的请求类型,用于与RESTful应用程序一起使用。
假设您想要为一种资源(由URL标识)创建单独的视图,并使用不同的HTTP方法。在一个默认的repoze.bfg项目中,例如,您可以这样编写
from repoze.bfg.restrequest import IGETRequest, IPOSTRequest from webob import Response def my_view_get(context, request): return Response("GET\n") def my_view_post(context, request): return Response("POST "+request.body+"\n")
这定义了一个方法 my_view_get,在执行对该资源的 GET 请求时使用,以及在执行 POST 请求时使用 my_view_post。您可以使用 PUT 或 DELETE 执行类似操作。
为了启用这些视图,您需要在 configure.zcml 中将它们连接,如下所示
<!-- include to activate the event handler for marking REST requests --> <include package="repoze.bfg.restrequest" /> <bfg:view for=".models.IMyModel" request_type="repoze.bfg.restrequest.interfaces.IGETRequest" view=".views.my_view_get" /> <bfg:view for=".models.IMyModel" request_type="repoze.bfg.restrequest.interfaces.IPOSTRequest" view=".views.my_view_post" />
您可以使用 repoze.bfg.convention 来执行相同的操作,在这种情况下,您的视图将如下所示
from repoze.bfg.restrequest import IGETRequest, IPOSTRequest from webob import Response @bfg_view(request_type=IGETRequest, for_=models.IMyModel) def my_view_get(context, request): return Response("GET\n") @bfg_view(request_type=IPOSTRequest, for_=models.IMyModel) def my_view_post(context, request): return Response("POST "+request.body+"\n")
请确保您仍然将 repoze.bfg.restrequest 包含在您的 configure.zcml 中。
测试您的应用程序
对上述内容的简单测试方法是启动您的应用程序,并使用 curl 查看不同方法的结果。
$ curl http://127.0.0.1:6543/ GET $ curl http://127.0.0.1:6543/ -d "posttest" POST posttest
变更日志
1.0 - 初次发布(2008年10月19日)
初次发布
1.0.1 - 打包错误修复
将HISTORY.txt移动到主目录,以便setup.py能够找到并打包它。
项目详情
关闭
repoze.bfg.restrequest-1.0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f09f71084348892dbec16c66fdc988bceb1ca5fef557d42f6ef7c5a85c4e8b35 |
|
MD5 | b77bdea8ba2d5421d8a54b51727fc0de |
|
BLAKE2b-256 | f66ee5b30bdfcce05a258faa13228f05c0437a1c65d69117b6442f9aa8060cf0 |