Repoze.Bfg.Restrequest 1.0.1 | Coderz Repository

repoze.bfg.restrequest 1.0.1

Last updated:

0 purchases

repoze.bfg.restrequest 1.0.1 Image
repoze.bfg.restrequest 1.0.1 Images

Free

Languages

Categories

Add to Cart

Description:

repoze.bfg.restrequest 1.0.1

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



1.0.1 - package bugfixing

moved HISTORY.txt to main directory so that setup.py finds and packages it.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product: (if this is empty don't purchase this product)

Customer Reviews

There are no reviews.