-----Original Message----- From: Gavin Henry [mailto:gavin.he...@gmail.com] Sent: 15 September 2011 13:21 To: The elegant MVC web framework Subject: [Catalyst] RESTful example apps?
Hi, I was wondering if any one has any example code implement a REST API in Catalyst? Thanks. [Ian replied.] This is roughly what I tend to do... package MyApp::Web::Controller::Rest; use Moose; use Readonly; BEGIN { extends 'Catalyst::Controller::REST'; } my $base_url = '/rest'; Readonly::Scalar our $HTTP__OK => 200; Readonly::Scalar our $HTTP__BAD_REQUEST => 400; Readonly::Scalar our $HTTP__FORBIDDEN => 403; Readonly::Scalar our $HTTP__NOT_FOUND => 404; sub foo : Local : ActionClass('REST::ForBrowsers') {} *status_GET_foo = \&foo_GET; sub foo_GET : Private { my ($self, $c) = @_; # Response my $response = { message => 'hello world', bar => 123, }; $c->stash->{rest} = $response; $c->response->status($HTTP__OK); } sub bam : Local : ActionClass('REST::ForBrowsers') {} *status_GET_bam = \&bam_GET; sub bam_GET : Private { my ($self, $c) = @_; # response my $response = { message => 'this is bam', bar => 456, }; $c->stash->{rest} = $response; $c->response->status($HTTP__OK); } sub bam_POST : Private { my ($self, $c) = @_; # POST your input data here # Response my $response = { message => 'success', status => 1, }; $c->stash->{rest} = $response; $c->response->status($HTTP__OK); } 1; -- This e-mail (including any attachments) is confidential, may contain proprietary or privileged information and is intended for the named recipient(s) only. Unintended recipients are prohibited from taking action on the basis of information in this e-mail and must delete all copies. Nomura will not accept responsibility or liability for the accuracy or completeness of, or the presence of any virus or disabling code in, this e-mail. If verification is sought please request a hard copy. Any reference to the terms of executed transactions should be treated as preliminary only and subject to formal written confirmation by Nomura. Nomura reserves the right to monitor e-mail communications through its networks (in accordance with applicable laws). No confidentiality or privilege is waived or lost by Nomura by any mistransmission of this e-mail. Any reference to "Nomura" is a reference to any entity in the Nomura Holdings, Inc. group. Please read our Electronic Communications Legal Notice which forms part of this e-mail: http://www.Nomura.com/email_disclaimer.htm _______________________________________________ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/