NAME
    Mojolicious::Plugin::RESTRoutes - routing helper for RESTful operations

VERSION
    version 0.010007

DESCRIPTION
    This Mojolicious plugin adds a routing helper for REST
    <http://en.wikipedia.org/wiki/Representational_state_transfer>ful CRUD
    <http://en.wikipedia.org/wiki/Create,_read,_update_and_delete>
    operations via HTTP to the app.

    The routes are intended, but not restricted to be used by AJAX
    applications.

METHODS
  register
    Adds the routing helper. Is called by Mojolicious.

MOJOLICIOUS SHORTCUTS
  rest_routes
    Can be used to easily generate the needed RESTful routes for a resource.

            $self->rest_routes(name => 'user');

            # Installs the following routes (given that $r->namespaces == ['My::Mojo']):
            #    GET /api/users         --> My::Mojo::User::rest_list()
            #   POST /api/users         --> My::Mojo::User::rest_create()
            #    GET /api/users/:userid --> My::Mojo::User::rest_show()
            #    PUT /api/users/:userid --> My::Mojo::User::rest_update()
            # DELETE /api/users/:userid --> My::Mojo::User::rest_remove()

    Take care: IDs must be numeric!

    The target controller has to implement the following methods:

    *   rest_list

    *   rest_create

    *   rest_show

    *   rest_update

    *   rest_remove

    There are some options to control the route creation:

    Parameters

    name
        The name of the resource, e.g. a "user", a "book" etc. This name
        will be used to build the route URL as well as the controller name
        (see example above).

    readonly (optional)
        If set to 1, no create/update/delete routes will be created

    controller (optional)
        Default behaviour is to use the resource name to build the CamelCase
        controller name (this is done by Mojolicious::Routes::Route). You
        can change this by directly specifying the controller's name via the
        *controller* attribute.

        Note that you have to give the real controller class name (i.e.
        CamelCased or whatever you class name looks like) including the full
        namespace.

                $self->rest_routes(name => 'user', controller => 'My::Mojo::Person');

                # Installs the following routes:
                #    GET /api/users         --> My::Mojo::Person::rest_list()
                #    ...

AUTHOR
    Jens Berthold <cpan-mp-restroutes@jebecs.de>

COPYRIGHT AND LICENSE
    This software is Copyright (c) 2014 by Jens Berthold.

    This is free software, licensed under:

      The MIT (X11) License

