a REST aware Request for implementing RESTful applications with repoze.bfg
Project description
Introduction
repoze.bfg.restrequest implements 4 additional Request types for use with RESTful applications.
Imagine you want to create separate views for one resource (identified by an URL) and different HTTP methods. In a default repoze.bfg project you can e.g. write:
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")
This defines one method my_view_get in case a GET request is performed on this resource and my_view_post in case a POST request is performed. You can do similar things with PUT or DELETE.
In order to enable these views you need to wire them in configure.zcml like this:
<!-- 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" />
You can do the same using repoze.bfg.convention in which case your views would look like this:
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")
Make sure you nevertheless include repoze.bfg.restrequest in your configure.zcml.
Testing your application
A simple test for the above would be to start your application and use curl to see what the result is for different methods:
$ curl http://127.0.0.1:6543/ GET $ curl http://127.0.0.1:6543/ -d "posttest" POST posttest
Changelog
1.0 - initial release (19 Oct 2008)
Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for repoze.bfg.restrequest-1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6c9ff6a505580e552f1284de24abbc4cc051fbf98a0a1fd4f17135ba2b6bd04 |
|
MD5 | 0e2dfb33d039337d3d50d141f4f2bc50 |
|
BLAKE2b-256 | d5f18ed89dd39c066c949450021b1e35dc9e77a3acf732588ff592b0559e021f |