<div dir="ltr"><div><div>Have you read the Dancer advent calendar article about serializers? <a href="http://advent.perldancer.org/2014/11">http://advent.perldancer.org/2014/11</a><br><br></div>You can use Plack::Builder to mount two separate apps together, and they can still share sessions:<br><br>$ cat MyApp/lib/MyApp.pm <br>package MyApp;<br>use Dancer2;<br><br>our $VERSION = '0.1';<br><br>get '/' => sub {<br>    session foo => 'bar';<br>    template 'index';<br>};<br><br>true;<br><br>$ cat MyApp/lib/MyApp/API.pm <br>package MyApp::API;<br>use Dancer2;<br><br>set serializer => 'JSON';<br><br>get '/' => sub {<br>    my $foo = session('foo') // 'fail';<br>    return { foo => $foo };<br>};<br><br>true;<br><br>$ cat MyApp/bin/app.psgi <br>#!/usr/bin/env perl<br><br>use strict;<br>use warnings;<br>use FindBin;<br>use lib "$FindBin::Bin/../lib";<br><br>use MyApp;<br>use MyApp::API;<br>use Plack::Builder;<br><br>builder {<br>    mount '/'    => MyApp->to_app;<br>    mount '/api' => MyApp::API->to_app;<br>};<br><br></div>And the test:<br><br>$ cat session_test<br>#!/usr/bin/env perl<br><br>use strict;<br>use warnings;<br>use 5.010;<br><br>use WWW::Mechanize;<br><br>my $mech = WWW::Mechanize->new;<br><br>my $base_url = '<a href="http://localhost:5000/">http://localhost:5000/</a>';<br>my $api_url = $base_url . 'api/';<br><br>$mech->get($base_url);<br>$mech->get($api_url);<br><br>say $mech->content(raw => 1);<br><br>$ ./session_test<br>{"foo":"bar"}<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 19, 2015 at 6:51 AM, Zahir Lalani <span dir="ltr"><<a href="mailto:ZahirLalani@oliver-marketing.com" target="_blank">ZahirLalani@oliver-marketing.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div link="blue" vlink="purple" lang="EN-GB">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Hi All<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">A little confused about the serialiser scope. I get that in the config file, it will apply to the entire application. I have a need to setup template driven routes and ajax
 routes. So I have a number of route files, and all use the app name to link the routes into one application.  Had assumed that the “set serialiser “ would be active in the current package only (i.e. the ajax routes file) but it seems it applies to the application
 since all routes are linked into the same application.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">I have hunted for clues, but in all honesty I am a little confused as to the solution. I know creating a separate app would work, but these routes are part of the same app
 and need to be centrally controlled in terms of session management etc.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Any advice most appreciated<span class="HOEnZb"><font color="#888888"><u></u><u></u></font></span></span></p><span class="HOEnZb"><font color="#888888">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Z<u></u><u></u></span></p>
</font></span></div>
</div>

<br>_______________________________________________<br>
dancer-users mailing list<br>
<a href="mailto:dancer-users@dancer.pm">dancer-users@dancer.pm</a><br>
<a href="http://lists.preshweb.co.uk/mailman/listinfo/dancer-users" target="_blank">http://lists.preshweb.co.uk/mailman/listinfo/dancer-users</a><br>
<br></blockquote></div><br></div>