Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

plack::middleware::recursive(3pm) [debian man page]

Plack::Middleware::Recursive(3pm)			User Contributed Perl Documentation			 Plack::Middleware::Recursive(3pm)

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). EXCEPTIONS
This middleware passes through unknown exceptions to the outside middleware stack, so if you use this middleware with other exception handlers such as Plack::Middleware::StackTrace or Plack::Middleware::HTTPExceptions, be sure to wrap this so Plack::Middleware::Recursive gets as inner as possible. AUTHORS
Tatsuhiko Miyagawa Masahiro Honma SEE ALSO
Plack Plack::Middleware::HTTPExceptions The idea, code and interface are stolen from Rack::Recursive and paste.recursive. perl v5.14.2 2011-06-22 Plack::Middleware::Recursive(3pm)

Check Out this Related Man Page

Plack::Middleware::HTTPExceptions(3pm)			User Contributed Perl Documentation		    Plack::Middleware::HTTPExceptions(3pm)

NAME
Plack::Middleware::HTTPExceptions - Catch HTTP exceptions SYNOPSIS
use HTTP::Exception; my $app = sub { # ... HTTP::Exception::500->throw; }; builder { enable "HTTPExceptions", rethrow => 1; $app; }; DESCRIPTION
Plack::Middleware::HTTPExceptions is a PSGI middleware component to catch exceptions from applications that can be translated into HTTP status codes. Your application is supposed to throw an object that implements a "code" method which returns the HTTP status code, such as 501 or 404. This middleware catches them and creates a valid response out of the code. If the "code" method returns a code that is not an HTTP redirect or error code (3xx, 4xx, or 5xx), the exception will be rethrown. The exception object may also implement "as_string" or overload stringification to represent the text of the error. The text defaults to the status message of the error code, such as Service Unavailable for 503. Finally, the exception object may implement "as_psgi", and the result of this will be returned directly as the PSGI response. If the code is in the 3xx range and the exception implements the 'location' method (HTTP::Exception::3xx does), the Location header will be set in the response, so you can do redirects this way. There are CPAN modules HTTP::Exception and HTTP::Throwable, and they are perfect to throw from your application to let this middleware catch and display, but you can also implement your own exception class to throw. If the thrown exception is not an object that implements either a "code" or an "as_psgi" method, a 500 error will be returned. Alternatively, you can pass a true value for the "rethrow" parameter for this middleware, and the exception will instead be rethrown. This is enabled by default when "PLACK_ENV" is set to "development", so that the StackTrace middleware can catch it instead. AUTHOR
Tatsuhiko Miyagawa SEE ALSO
paste.httpexceptions HTTP::Exception HTTP::Throwable perl v5.14.2 2011-06-22 Plack::Middleware::HTTPExceptions(3pm)
Man Page