[Catalyst] RE: DBIC <-> JSON conversion for AJAX

Roland Philibert rphilibert at aptina.com
Wed Sep 14 14:54:01 GMT 2011


Eden or anybody familiar on this subject,

I tried your solution (REST + DBIx::..::HashRefInflator) but because my
search retrieve more than one rows, I populated an array as per:

sub thing_GET {

	my ($self, $c) = @_;  
	my @arr=();
	my $rs = $c->model('DB::data)->search({}, {
   		result_class =>
'DBIx::Class::ResultClass::HashRefInflator',
 	});
	
 	while (my $hashref = $rs->next) {
		push @arr,$hashref;
 	}
	
	$self->status_ok(	
		$c,
		entity => \@arr
	);
}



Would you say that this is a valid approach? Or can I retrieve all data
bu other means with the DBIx model?

Thanks
Roland














-----Original Message-----
From: Roland Philibert 
Sent: 13 September 2011 16:56
To: The elegant MVC web framework
Subject: RE: [Catalyst] RE: DBIC <-> JSON conversion for AJAX

Eden> Then if you ask for a Content-Type of application/json you'll get
JSON from that in your response.

I would do that by adding to the REST controller:
sub end :Private {
	my ($self, $c) = @_; 
	$c->forward("View::JSON");  
}
Is that correct?






-----Original Message-----
From: Eden Cardim [mailto:edencardim at gmail.com] 
Sent: 12 September 2011 21:31
To: The elegant MVC web framework
Subject: Re: [Catalyst] RE: DBIC <-> JSON conversion for AJAX

>>>>> "Roland" == Roland Philibert <rphilibert at aptina.com> writes:

    Roland> Thanks all for your suggestions so far.  I was I guess on
    Roland> the right track with JSON:XS but I had also seen REST but so
    Roland> far I am still unsure as what the best way to go

Catalyst::Controller::REST + DBIx::Class::ResultClass::HashRefInflator
works pretty well:

   $self->status_ok(
        $c,
        entity => $rs->search({}, {
          result_class =>  'DBIx::Class::ResultClass::HashRefInflator'
        })->next
   );

Then if you ask for a Content-Type of application/json you'll get JSON
from that in your response.

-- 
  Eden Cardim
  Code Monkey                    http://www.shadowcat.co.uk/catalyst/
 Shadowcat Systems Ltd.  Want a managed development or deployment
platform?
http://blog.edencardim.com/
http://www.shadowcat.co.uk/servers/
http://twitter.com/#!/edenc

_______________________________________________
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/
Aptina (UK) Limited, Century Court, Millennium Way, Bracknell,
Berkshire, RG12 2XT. Registered in England No. 06570543.

This e-mail and any attachments contain confidential information and are
solely for the review and use of the intended recipient. If you have
received this e-mail in error, please notify the sender and destroy this
e-mail and any copies.



_______________________________________________
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/
Aptina (UK) Limited, Century Court, Millennium Way, Bracknell, Berkshire, RG12 2XT. Registered in England No. 06570543.

This e-mail and any attachments contain confidential information and are solely for the review and use of the intended recipient. If you have received this e-mail in error, please notify the sender and destroy this e-mail and any copies.




More information about the Catalyst mailing list