It seems odd to manually set the response to '200' like that. Is this just a feature of "true" REST protocol, or you are not assuming anything about the server...
Ben On Sep 15, 2011, at 5:53 AM, <ian.doche...@nomura.com> <ian.doche...@nomura.com> wrote: > -----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/ -- Ben Hitz Senior Scientific Programmer ** Saccharomyces Genome Database ** GO Consortium Stanford University ** h...@stanford.edu _______________________________________________ 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/