Re: [Mojolicious] Mojolicious::Lite routes organization

2019-01-28 Thread Stefan Adams
Hi!  See this recent thread
 in
this Mailing List.

On Mon, Jan 28, 2019 at 3:08 AM mikem  wrote:

> Hi Guys,
>
> I'm using Mojolicious::Lite to build a simple API for a project. This is
> my code:
>
>
> -
> app.pl
>
> -
> use Mojolicious::Lite;
>
> push @{ app->routes->namespaces }, 'MyAPI';
>
> (get '/products/list')->to('Products#list');
> (get '/products/add')->to('Products#add');
>
> -
>
>
> -
> MyAPI::Products.pm
>
> -
> package MyAPI::Products;
>
> use Mojo::Base 'Mojolicious::Controller';
>
> sub list {
>   my $self = shift;
>   $self->render(json => { hello => 'list' });
> }
>
> sub add {
>   my $self = shift;
>   $self->render(json => { hello => 'add' });
> }
>
> 1;
>
> -
>
> This works great and let me split my routers into several different files
> (keeping the simplicity of Mojolicious::Lite. My question is:
>
> Instead of having to register all my routers in app.pl and map them into
> the .pm files, can't I use a wild card for that? Something like:
>
>
> -
> (any '/products/*url')->to(cb => sub {
>   my $c= shift;
>   my $url = $c->param('url');
>   print STDERR "### $url\n";
>
>   ??
> });
>
> -
>
> With this, I have on the $url vbl what I need for the routing, I just
> can't figure out how to translate that into the correct method on the
> controller (MyAPI::Products::list for example).
>
> Thanks for the help.
>
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Mojolicious" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to mojolicious+unsubscr...@googlegroups.com.
> To post to this group, send email to mojolicious@googlegroups.com.
> Visit this group at https://groups.google.com/group/mojolicious.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mojolicious+unsubscr...@googlegroups.com.
To post to this group, send email to mojolicious@googlegroups.com.
Visit this group at https://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.


[Mojolicious] Mojolicious::Lite routes organization

2019-01-28 Thread mikem
Hi Guys,

I'm using Mojolicious::Lite to build a simple API for a project. This is my 
code:

-
app.pl
-
use Mojolicious::Lite;

push @{ app->routes->namespaces }, 'MyAPI';

(get '/products/list')->to('Products#list');
(get '/products/add')->to('Products#add');
-

-
MyAPI::Products.pm
-
package MyAPI::Products;

use Mojo::Base 'Mojolicious::Controller';

sub list {
  my $self = shift;
  $self->render(json => { hello => 'list' });
}

sub add {
  my $self = shift;
  $self->render(json => { hello => 'add' });
}

1;
-

This works great and let me split my routers into several different files 
(keeping the simplicity of Mojolicious::Lite. My question is:

Instead of having to register all my routers in app.pl and map them into 
the .pm files, can't I use a wild card for that? Something like:

-
(any '/products/*url')->to(cb => sub {
  my $c= shift;
  my $url = $c->param('url');  
  print STDERR "### $url\n";

  ??
});
-

With this, I have on the $url vbl what I need for the routing, I just can't 
figure out how to translate that into the correct method on the controller 
(MyAPI::Products::list for example).

Thanks for the help.




-- 
You received this message because you are subscribed to the Google Groups 
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mojolicious+unsubscr...@googlegroups.com.
To post to this group, send email to mojolicious@googlegroups.com.
Visit this group at https://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.