[Catalyst] Error in subclassing Catalyst::Controller::DBIC::API::REST

Alexander Hartmaier alexander.hartmaier at t-systems.at
Wed Jun 24 12:33:05 GMT 2009


Please provide us with the debug output of your cat app at startup.
Have you tried removing sub create?
Also look at the RestTest app used for the tests to find possible bugs
in your code.

Am Mittwoch, den 24.06.2009, 02:39 +0200 schrieb Amiri Barksdale:
> I have a controller inheriting from a ControllerBase class that contains
> the following:
>
>    package RestTest::ControllerBase::REST;
>
>    use strict;
>    use warnings;
>    use base qw/Catalyst::Controller::DBIC::API::REST/;
>
>    sub create :Private {
>    my ($self, $c) = @_;
>    $self->next::method($c);
>        if ($c->stash->{created_object}) {
>            %{$c->stash->{response}->{new_object}} =
>            %$c->stash->{created_object}->get_columns;
>        }
>    }
>
>    1;
>
>
> All the ControllerBase does is stash that object on create requests. I
> was following lukes's example at
> http://search.cpan.org/~lsaunders/Catalyst-Controller-DBIC-API-1.003000/lib/Catalyst/Controller/DBIC/API.pm#EXTENDING.
> The relevant part of the controller is:
>
>
>    package RestTest::Controller::API::REST::Artist;
>
>    use strict;
>    use warnings;
>    use base qw/RestTest::ControllerBase::REST/;
>    use JSON::Syck;
>
>    __PACKAGE__->config(
>        action                  =>  { setup => { PathPart => 'artist',
>    Chained => '/api/rest/rest_base' } },
>    ...
>    );
>
>
> Now for the problem. When I go to test this:
>
>    my $mech = Test::WWW::Mechanize::Catalyst->new;
>    ok(my $schema = DBICTest->init_schema(), 'got schema');
>
>      my $req = GET("http://localhost/api/rest/artist/list", {
>      }, 'Accept' => 'text/x-json' );
>      $mech->request($req);
>      cmp_ok( $mech->status, '==', 200, 'open attempt okay' );
>
>
> I get the error:
>
>    'Method GET not implemented for http' =>
>    '//localhost/api/rest/artist/api/rest/artist/object'
>
> Somehow my request path gets all messed up. I dumped out the $mech, and it tells
> me that $mech->base is indeed what I put. So is $mech->redirected_uri.
>
>
>
> Amiri
>
> _______________________________________________
> List: Catalyst at 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/
--
LG Alex


*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*
T-Systems Austria GesmbH   Rennweg 97-99, 1030 Wien
Handelsgericht Wien, FN 79340b
*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*
Notice: This e-mail contains information that is confidential and may be privileged.
If you are not the intended recipient, please notify the sender and then
delete this e-mail immediately.
*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*



More information about the Catalyst mailing list