NAME
Eve::HttpDispatcher - an event handler for HTTP request events.
SYNOPSIS
use Eve::HttpDispatcher;
my $dispatcher = Eve::HttpDispatcher->new(
request_constructor => $request_constructor,
response => $response,
base_uri => $base_uri,
alias_base_uri_list => [$alias_base_uri, $another_alias_base_uri],
event_map => $event_map);
$dispatcher->bind(
name => $name
pattern => $pattern,
resource_constructor => $resource_constructor);
$dispatcher->bind(
name => $name_404
pattern => $pattern_404,
resource_constructor => $resource_constructor_404,
exception => 'Eve::Exception::Http::404NotFound');
$dispatcher->handle(event => $event);
DESCRIPTION
Eve::HttpDispatcher class is a central component to a web service application.
Constructor arguments
request_constructor-
a code reference that returns an HTTP request object when passed an environment hash
response-
an HTTP response object
event_map-
an event map object.
base_uri-
a base URI object used for resource binding.
alias_base_uri_list-
(optional) a reference to a list of additional base URI objects that will be used for resource matching.
METHODS
init()
bind()
Binds an HTTP resource.
Arguments
name-
a name identifying the binding
pattern-
an URI pattern string that can contain placeholders
base_uri-
a URI object that represents a base URL for the binding resource
resource_constructor-
a code reference that returns an HTTP resource object
exception-
(optional) an HTTP exception class name that the bound resource should be used to handle. Note: there can be only one resource bound to handle a certain exception.
Throws
Eve::Exception::HttpDispatcher-
if either name or compound URI or exception class name is not unique.
get_uri()
Arguments
name-
a name identifying the binding
Returns
A URI bound to the resource name.
Throws
handle()
Chooses a resource using the request URI and delegates control to the resource's process() method. It also passes placeholder matches into this method.
Arguments
event-
a
Eve::Event::HttpRequestReceivedobject.
Throws
Eve::Exception::Http::404NotFound-
if no resources match the request and no resources that handle the
Eve::Exception::Http::404NotFoundare bound.
SEE ALSO
LICENSE AND COPYRIGHT
Copyright 2012 Igor Zinovyev.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.