The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Terse::Controller - controllers made simple.

VERSION

Version 0.106

SYNOPSIS

        package Stocks;

        use base 'Terse::Controller';

        sub login :any {
                return 1;
        }

        sub auth_prevent :any(auth) {
                return 0;
        }

        sub auth :get :post {
                return $_[1]->delayed_response(sub { ... });;
        }

        sub purchase :get :delayed { # delayed attribute is the same as the above 
                ... #1
        }
        
        sub purchase_virtual :get(purchase) :params(virtual => 1) {
                ... #2
        }

        sub purchase_post :post(purchase) {
                ... # 3
        }

        sub purchase_virtual_post :post(purchase) :params(virtual => 1) {
                ... # 4
        }

        sub other :get :path(foo/(.*)/bar) :captured(1) {
                ... # 5
        }


        1;

        .... psgi ...

        use Terse;
        use Stocks;
        our $api = Stocks->new();

        sub {
                my ($env) = (shift);
                Terse->run(
                        plack_env => $env,
                        application => $api,
                );
        };

        ....

        plackup Stocks.psgi

        GET http://localhost:5000/?req=purchase  #1
        POST http://localhost:5000/ {"req":"purchase"} #3

        GET http://localhost:5000/?req=purchase&virtual=1 #2
        POST http://localhost:5000/ {"req":"purchase", "virtual":1} #4

        GET http://localhost:5000/foo/555/bar #5

AUTHOR

LNATION, <email at lnation.org>

LICENSE AND COPYRIGHT

Terse.