skip to navigation
skip to content

pyramid_rest 0.2.7

Pyramid Rest Extension

Latest Version: 0.2.8

Pyramid REST

  • First draft of a pyramid extension to build RESTful web application.

  • Features included:

    • resource definition which configure routes/views, i.e:

      • a resource ‘application’:

        • route [GET/POST] /applications
        • route [GET/DELETE/PUT] /applications/{application_id}
        • route GET /applications/{application_id}/new
        • route GET /applications/{application_id}/edit
      • a resource ‘application.user’:

        • route [GET/POST] /applications/{application_id}/users
        • route [GET/DELETE/PUT] /applications/{application_id}/users/{user_id}
        • route GET /applications/{application_id}/users/new
        • route GET /applications/{application_id}/users/edit
      • a singular resource ‘application.user.score’:

        • route [GET/PUT] /applications/{application_id}/users/{user_id}/score
        • route GET /applications/{application_id}/users/{user_id}/score/edit
    • resources are added to config introspector and related to their routes,views, sub-resource and parent resource;

    • end user defines REST methods (index, create, show, update, delete, new, edit);

    • by default:

      • HTTP 405 is returned for any method not provided;
      • permissions ‘index, create, show, update, delete, new, edit’ are associated to respective method;
  • 3 ways to configure resource:

    1. Imperative using config.add_resource, it will associate class in views module to resource

      config.add_resource('application')       # .views.applications:ApplicationsView
      config.add_resource('application.user')  # .views.application_users:ApplicationUsersView
    2. Declarative using Resource class (cornice style):

      app_users = Resource('application.user')
      def index(context, request, application_id):
      def show(context, request, application_id, id):
    3. Declarative using resource_config decorator:

      class AppUsers(object):
          def __init__(self, context, request):
          def index(self, application_id):
              return {}
          def edit(self, application_id, id):
              return {}

What next?

  1. Security
  2. HTTP PATCH method:
  3. Resource Scaffolding command;
  4. Links;
  5. Validation;
  6. Pagination;
  7. Automatic resource definition of SQLAlchemy entities;
  8. Have a view parameter in add_resource to override view definition;
File Type Py Version Uploaded on Size
pyramid_rest-0.2.7.tar.gz (md5) Source 2013-03-21 17KB