/ / Ako nájsť názov cesty pre danú cestu v Mojolicious? perl, mojolicious

Ako nájsť názov trasy pre danú cestu v Mojolicious? perl, mojolicious

Pri analyzovaní html body odpovede chcem nájsť názvy trás pre všetky odkazy nájdené v tele. Používam ďalší útržok kódu:

    my $url =  Mojo::URL->new( $got );
my $method =  uc( $url->query->clone->param( "_method" ) || "GET" );
my $c =  $t->app->build_controller;
my $m =  Mojolicious::Routes::Match->new( root => $t->app->routes );

$m->find( $c => { method => $method,  path => $url->path } );

potom $m->endpoint->name dáva mi názov trasy.

Existuje však jednoduchší spôsob, ako nájsť názov trasy podľa danej cesty?

Hľadám niečo ako: $app->routes->find( "/api/v/users/146/link/7QRgs" ) ktorý by sa mal vrátiť user_hash_check pretože mám ďalšiu trasu:

$guest->get( "/users/:id/link/:hash", "user_hash_check" )->to( "user#hash_check" );

odpovede:

-1 pre odpoveď č. 1

Našiel som len jedno miesto, kde môžeme nájsť cestu po ceste. To je Mojolicious :: Routes :: Match a neexistuje iný spôsob, ako to urobiť

Jedna škaredá vec, ktorú tu myslím, je požiadavka na zásobovanie Mojolicious :: Controller objekt. Ovládateľ je však povinný robiť len rozhodnutie: odosielanie alebo odosielanie Pretože má ďalšie informácie, aby toto rozhodnutie: toto sú údaje na kontrolu podmienky

Problém, ktorý si myslím, je, že tu sú zmiešané dve veci:

  1. žiadosť
  2. cesta

a Nájsť by mali vrátiť všetky cesty porovnané s danými argumentmi: cesta a metóda. Páči sa mi to voličov Výsledok poľa môže byť uložený do vyrovnávacej pamäte (teraz sú trasy s podmienkami nie sú uložené vo vyrovnávacej pamäti)

potom odosielateľ mali by skontrolovať podmienky proti každej trase nie dohadzovač, Tu je možné zavolať každú podmienku v kontexte správneho kontrolóra a nie predvoleného, A to to napraví táto záležitosť, Trasy majú vo väčšine prípadov vlastnú triedu regulátorov nie?

Kým sa toto správanie neodstráni príklad v otázke je najlepší spôsob, ako nájsť trasy