skip to navigation
skip to content

rest_toolkit 0.9

REST toolkit

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

class Root(object):
    def __init__(self, request):

def show_root(root, request):
    return {'status': 'OK'}

if __name__ == '__main__':


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 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.

File Type Py Version Uploaded on Size
rest_toolkit-0.9-py2.py3-none-any.whl (md5) Python Wheel 3.4 2015-09-20 18KB
rest_toolkit-0.9.tar.gz (md5) Source 2015-09-20 29KB
  • Downloads (All Versions):
  • 30 downloads in the last day
  • 240 downloads in the last week
  • 1161 downloads in the last month