Have you checked http://localhost:5000/api/api/userdata/dancer_operator? On 14 July 2016 at 14:37, James E Keenan <jkeen@verizon.net> wrote:
On 07/12/2016 10:44 AM, Warren Young wrote:
On Jul 10, 2016, at 11:20 AM, James E Keenan <jkeen@verizon.net> wrote:
All the endpoints defined in lib/mywebapp.pm continue to function as expected. But the endpoint, /api/userdata/:user, defined in lib/mywebapp/ api.pm, no longer works.
That’s because your “mount” for the api.pm routes prepends ‘/api’ to them. When you use the module standalone as you’re attempting to now, that bit is stripped off. You’ll find that you now have /userdata/$stuff now.
Easy fix: wrap the route definitions in api.pm in a prefix block:
prefix '/api' => sub { any ['get', 'post'] => '/userdata/:user' => sub { # etc }; };
Thank you for your reply. However, when I wrap the endpoint in mywebapp::api with 'prefix' per your suggestion, I am still getting 404s on both 'http://localhost:5000/api/userdata/dancer_operator' and ' http://localhost:5000/userdata/dancer_operator'.
Here is the diff of what I am trying:
##### diff --git a/bin/app.psgi b/bin/app.psgi index 46d8845..e9ac3da 100755 --- a/bin/app.psgi +++ b/bin/app.psgi @@ -6,11 +6,12 @@ use FindBin; use lib "$FindBin::Bin/../lib";
use mywebapp; -use mywebapp::api; -use Plack::Builder; - -builder { - mount '/' => mywebapp->to_app; - mount '/api' => mywebapp::api->to_app; -}; +#use mywebapp::api; +#use Plack::Builder; +# +#builder { +# mount '/' => mywebapp->to_app; +# mount '/api' => mywebapp::api->to_app; +#}; +mywebapp->to_app;
diff --git a/lib/mywebapp.pm b/lib/mywebapp.pm index 997bdc7..7c940da 100644 --- a/lib/mywebapp.pm +++ b/lib/mywebapp.pm @@ -1,6 +1,6 @@ package mywebapp; use v5.10.1; -use Dancer2; +use Dancer2 appname => mywebapp; use Dancer2::Plugin::Database; use Crypt::SaltedHash; use Data::Dump; diff --git a/lib/mywebapp/api.pm b/lib/mywebapp/api.pm index 3af1adf..88b47f7 100644 --- a/lib/mywebapp/api.pm +++ b/lib/mywebapp/api.pm @@ -1,6 +1,6 @@ package mywebapp::api; use v5.10.1; -use Dancer2; +use Dancer2 appname => mywebapp; use Dancer2::Plugin::Database; use Crypt::SaltedHash; use Data::Dump; @@ -13,6 +13,7 @@ set session => 'Simple'; set views => path( app->location, "templates" ); set serializer => 'JSON';
+prefix '/api' => sub { any ['get', 'post'] => '/userdata/:user' => sub {
my $user_value = route_parameters->get('user'); @@ -34,6 +35,7 @@ any ['get', 'post'] => '/userdata/:user' => sub { } } }; +};
start; ######
So I'm still finding that 'appname' is not DWIMming.
Thank you very much. Jim Keenan _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users