<div dir="ltr"><div>Hi, here is what I'm trying to do:<br><br>package mbf;<br>use Dancer2;<br>use Dancer2::Plugin::REST;<br>prepare_serializer_for_format;<br><br>get '/page.:format' => sub { [<br>        'some key' => 'value',<br>

        'something'=> 'else',<br>    ] };<br>true;<br><br></div>And when I go to <a href="http://localhost:5000/markets.json">http://localhost:5000/page.json</a> I get <span style="color:rgb(0,0,0);font-family:'Times New Roman';font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">ARRAY(0x23b3880)</span> in the browser.<span style="color:rgb(0,0,0);font-family:'Times New Roman';font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none"></span> The data was not serialized. <br>

What did I do wrong?<br><div><br></div><div>As an alternative I've done something that works:<br><br>package mbf;<br>use Dancer2;<br>use Dancer2::Serializer::JSON;<br><br>get '/page.json' => sub {<br>    to_json([<br>

        'some key' => 'value',<br>        'something'=> 'else',<br>    ]);<br>};<br>true;<br><br></div><div>And in the browser I get what I expect: <span style="color:rgb(0,0,0);font-family:'Times New Roman';font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">["some key","value","something","else"]</span></div>

<div>I would like to use use Dancer2::Plugin::REST though, to leave the choice of format to whoever will use the API.<br><br></div><div>I noticed a detail in the module's documentation. The two examples given are:<br>

<div class=""><code class="">    get </code><code class="">'/user/:id.:format'</code> <code class="">=> </code><code class="">sub</code> <code class="">{<br></code></div><div class=""><code class="">and<br></code></div>

<div class=""><code class="">    get </code><code class="">qr{^/user/(?<id>\d+)\.(?<format>\w+)}</code> <code class="">=> </code><code class="">sub</code> <code class="">{</code></div><br></div><div>The first example is similar to my case, but not the second one. And the documentation says: "Regexp routes will use the file-extension from captures->{'format'} to determine the serialization format." Which seems to indicate that only the second use case in the documentation would work.  I tried it. It didn't work  for me either. I must be doing something wrong.<br>

Any idea?<br></div><div><br clear="all"><div><div><div dir="ltr">--- Pierre Masci<br><br></div></div>
</div></div></div>