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

VERSION
    version 0.0100065

DESCRIPTION
    This Mojolicious plugin adds some routing helpers 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.

EXTENDS
    *   Mojolicious::Plugin

METHODS
  register
    Adds the routing helpers. 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()

    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
        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) 2013 by Jens Berthold.

    This is free software, licensed under:

      The MIT (X11) License