REST toolkit
Project description
rest_toolkit is a Python package which provides a very convenient way to build REST servers. It is build on top of Pyramid, but you do not need to know much about Pyramid to use rest_toolkit.
Quick example
This is a minimal example which defines a Root resource with a GET view, and starts a simple HTTP server. If you run this example you can request http://localhost:8080/ and you will see a JSON response with a status message.
from rest_toolkit import quick_serve from rest_toolkit import resource @resource('/') class Root(object): def __init__(self, request): pass @Root.GET() def show_root(root, request): return {'status': 'OK'} if __name__ == '__main__': quick_serve()
Changelog
0.14 - May 25, 2017
Fix a Pyramid depcreation warning for unauthenticated_userid.
0.13 - August 18, 2016
Preserve response exceptions raised by resource constructors or views if they already have a JSON content type.
Modify default JSON validation error response format: use the field with the validation error as key in the response data.
Use a custom rest_toolkit.ext.jsonschema.JSONValidationError exception for JSON validation errors. This allows for easy customisation of validation error response by defining a view for JSONValidationError.
0.12 - June 1, 2016
Pass extra resource and controller arguments to the underlying add_view() calls. This allows using predicates for views.
0.11 - May 6, 2016
Allow update_from_dict to return a custom response, which will be used by the default PATCH and PUT views.
0.10 - May 4, 2016
Do not require any permssions for OPTIONS requests. This can badly break authentication, since OPTIONS will be called to check if auth-related headers may be send.
Do not register catch-all exception view if debugging is enabled.
0.9 - September 20, 2015
Default to not allowing primary key changes for SQLResource objects. This can be toggled with a new allow_primary_key_change variable on the resource class.
Correctly set Access-Control-Allow-Methods header for resources using default views.
0.8 - September 5, 2015
Correctly handle OPTIONS requests for controllers.
Do not require any permissions for the generic error view. This fixes any errors being converted to forbidden errors on sites with a default permission.
0.7 - March 12, 2015
Fix editing of SQL resource.
Update default views and validation extensions not to assume anything about the to_dict() return format.
If the rest_toolkit.debug is set, or the REST_TOOLKIT_DEBUG environment variable is set to true, or the pyramid’s debug-all flag is set the system error exception handler will add the exception traceback to the response under a new traceback key.
Add basic support for collection resources. These can handle POST requests to create child objects.
0.6 - November 4, 2014
Make sure controllers for resource whose path do not end in a slash are reachable. This fixes issue 12.
Fix mismatch between code and documentation: use request_method as parameter name for the controller decorator.
0.5 - October 24, 2014
Allow overriding the request method for controllers. This fixes issue 10.
Add read_permission, update_permission and delete_permission options to the resource decorator to set permissions for default views. This fixes issue 8.
Rely on fixtures provided by pyramid_sqlalchemy for our SQL-related tests.
Preserve headers when converting a HTTP response to JSON. This fixes issue 6.
The route name for a resource can now be configured with a route_name parameter for the resource decorator.
0.4.1 - July 18, 2014
Make sure all raised HTTP exceptions are converted to JSON responses.
0.4 - July 18, 2014
This releases focuses on improving the documentation and fixing problems in the SQL extension.
Fix several errors in the SQLResource defaults views.
Configuring the SQL extension is no longer necessary if you use pyramid_sqlalchemy to handle SQLAlchemy integration.
Travis is now setup to automatically run tests on CPython 2.7, CPython 3.3, CPython 3.4 and PyPy.
Fix Python 3 compatibility problem in the generic error view.
Drop explicit Python 2.6 support. The tests use too many set literals to make Python 2.6 worthwile.
Modify EditableResource to not inherit from ViewableResource. This makes the separation between editing and viewing explicit, and works around the inability of Python to handle the inheritance schemes where a base classes is used multiple times.
Remove the default value for replace in EditableResource.updat_from_dict(). This did not serve a useful purpose, and could be confusing.
Set self.request in SQLResource constructor.
0.3 - July 11, 2014
This release fixes several critical errors in the SQL extension:
Fix the invoction of the context query.
Return not-found error from SQLResource instead of an internal error when no SQL row could be found.
Do not enable default views for SQLResource automatically. This should be an explicit decision by the user.
0.2.2 - July 11, 2014
Fix several errors in SQL extension.
0.2.1 - July 10, 2014
Add a MANIFEST.in to the source distribution installable.
0.2 - July 9, 2014
Several demos showing how to use rest_toolkit with AngularJS have been added.
Support for default DELETE, GET, PATCH and PUT views has been added.
Various documentation fixes and improvements.
0.1 - Released 24 June, 2014
This is the first 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
Built Distribution
Hashes for rest_toolkit-0.14-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c22570e8a9175a1f2511bb88dcd9bb742783644e91bc346f98e496145adf670 |
|
MD5 | b6b04f88795b2dc5db55b611b43c8b4e |
|
BLAKE2b-256 | 3e026ba7a79af8e2622671e4395726484db17b93da800d2fd2a6e9a78a4cbb4a |