[Catalyst] Error in subclassing
Catalyst::Controller::DBIC::API::REST
luke saunders
luke.saunders at gmail.com
Wed Jun 24 14:01:52 GMT 2009
On Wed, Jun 24, 2009 at 3:00 PM, Fitz Elliott<felliott at virginia.edu> wrote:
> Hey Amiri,
>
>> 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 just finished building some code around C::C::DBIC::API and ran into
> something similar. I'm assuming in this test that you are trying to get a
> list of all artists. If so, you should make a GET request against
> http://localhost/api/rest/artist. In a REST controller, artist/list would
> be asking for the artist whose id is 'list'. C::C::DBIC::API also doesn't
> support GET on an individual object out of the box, but it is easy to add.
> Just add
>
> sub object_GET :Private {}
>
> in RestTest::ControllerBase::REST. The rest of the code is already there to
> retrieve the object and serialize it.
As Fitz has said above - if you want to use REST then you have to make
the GET request to just /api/rest/artist. However if you would prefer
to to the url /api/rest/artist/list then that's more RPC style and so
you'd have to be subclassing Catalyst::Controller::DBIC::API::RPC.
I'm interested in the
'//localhost/api/rest/artist/api/rest/artist/object' weirdness. Is
that specific to running under Test::WWW::Mechanize::Catalyst? Maybe
try starting a server in debug mode and then specify
CATALYST_SERVER=http://localhost:3000 before running the test to see
how that's getting dispatched.
Cheers,
Luke.
More information about the Catalyst
mailing list