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.
Metadata
Release files for repoze.bfg.restrequest 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| repoze.bfg.restrequest-1.0.1.tar.gz | 3.3 kB | Without provenance | Details |
Release files / repoze.bfg.restrequest-1.0.1.tar.gz
| Download URL | repoze.bfg.restrequest-1.0.1.tar.gz |
|---|---|
| Size | 3.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f09f71084348892dbec16c66fdc988bceb1ca5fef557d42f6ef7c5a85c4e8b35
|
|
BLAKE2b-256 checksum How to use checksums |
f66ee5b30bdfcce05a258faa13228f05c0437a1c65d69117b6442f9aa8060cf0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for repoze.bfg.restrequest 1.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.