CatalystX-CRUD
view release on metacpan or search on metacpan
lib/CatalystX/CRUD/REST.pm view on Meta::CPAN
package CatalystX::CRUD::REST;
use strict;
use warnings;
use base qw( CatalystX::CRUD::Controller );
use Carp;
use MRO::Compat;
use mro 'c3';
use Data::Dump qw( dump );
use Try::Tiny;
__PACKAGE__->mk_accessors(qw( enable_rpc_compat ));
__PACKAGE__->config( enable_rpc_compat => 0 );
our $VERSION = '0.58';
#warn "REST VERSION = $VERSION";
=head1 NAME
CatalystX::CRUD::REST - RESTful CRUD controller
=head1 SYNOPSIS
# create a controller
package MyApp::Controller::Foo;
use strict;
use base qw( CatalystX::CRUD::REST );
use MyForm::Foo;
__PACKAGE__->config(
form_class => 'MyForm::Foo',
init_form => 'init_with_foo',
init_object => 'foo_from_form',
default_template => 'path/to/foo/edit.tt',
model_name => 'Foo',
primary_key => 'id',
view_on_single_result => 0,
page_size => 50,
enable_rpc_compat => 0,
);
1;
# now you can manage Foo objects using your MyForm::Foo form class
# with URIs at:
# foo/<pk>
# and use the HTTP method name to indicate the appropriate action.
# POST /foo -> create new record
# GET /foo -> list all records
# PUT /foo/<pk> -> update record
# DELETE /foo/<pk> -> delete record
# GET /foo/<pk> -> view record
# GET /foo/<pk>/edit_form -> edit record form
# GET /foo/create_form -> create record form
=head1 DESCRIPTION
CatalystX::CRUD::REST is a subclass of CatalystX::CRUD::Controller.
Instead of calling RPC-style URIs, the REST API uses the HTTP method name
to indicate the action to be taken.
See CatalystX::CRUD::Controller for more details on configuration.
The REST API is designed with identical configuration options as the RPC-style
Controller API, so that you can simply change your @ISA chain and enable
REST features for your application.
B<IMPORTANT:> If you are using a CatalystX::CRUD::REST subclass
( run in 1.274 second using v1.01-cache-2.11-cpan-99c4e6809bf )