NAME

Plack::Middleware::Recursive - Allows PSGI apps to include or forward requests recursively

SYNOPSIS

# with Builder
enable "Recursive";

# in apps
my $res = $env->{'plack.recursive.include'}->("/new_path");

# Or, use exceptions
my $app = sub {
    # ...
    Plack::Recursive::ForwardRequest->throw("/new_path");
};

DESCRIPTION

Plack::Middleware::Recursive allows PSGI applications to recursively include or forward requests to other paths. Applications can make use of callbacks stored in $env->{'plack.recursive.include'} to include another path to get the response (whether it's an array ref or a code ref depending on your application), or throw an exception Plack::Recursive::ForwardRequest anywhere in the code to forward the current request (i.e. abort the current and redo the request).

AUTHORS

Tatsuhiko Miyagawa

Masahiro Honma

SEE ALSO

Plack Plack::Middleware::HTTPExceptions

The idea, code and interface are stolen from Rack::Recursive and paste.recursive.