SYNOPSIS
use Dancer2;
use Dancer2::Plugin::ParamKeywords;
any '/:some_named_parameter' => sub {
my $route_param = route_param('some_named_parameter');
my $get_param = query_param('some_named_parameter');
my $post_param = body_param('some_named_parameter');
};
DESCRIPTION
The default Dancer2::Core::Request params accessor munges parameters in
the following precedence from highest to lowest: POST parameters, named
route parameters, and GET parameters.
Consider the following route:
post '/people/:person_id' => sub {
my $person_id = param('person_id');
...
# Perform some operation using $person_id as a key
};
In the above example, if the browser/client sends a parameter person_id
with a value of 2 in the POST body to route /people/1, $person_id will
equal 2 while still matching the route /people/1.
This plugin provides keywords that wrap around params($source) for
convenience to fetch parameter values from specific sources.
CONFIGURATION
The munged_params keyword requires you to configure an order of
precedence by which to prefer parameter sources. Please see
Dancer2::Core::Request params accessor for a list of valid sources.
# In config.yml
plugins:
ParamKeywords:
munge_precedence:
- route
- body
- query
If you won't be using this keyword, you don't need to bother
configuring this plugin.
KEYWORDS
munged_params
Returns a hash in list context or a hash reference in scalar context of
parameters munged according to the precedence provided in the
configuration file (from highest to lowest).
query_param(Str)
Returns the value supplied for a given parameter in the query string.
query_params
Returns the arguments and values supplied by query string. Returns a
hash in list context or a hasref in scalar context.
body_param(Str)
Returns the value supplied for a given parameter in the POST arguments.
body_params
Returns arguments and values supplied by a POST request. Returns a hash
in list context or a hasref in scalar context.
route_param(Str)
Returns the value supplied for a given named parameter in the route.
route_params
Returns the arguments and values suppled by the route. Returns a hash
in list context or a hasref in scalar context.
VERSIONING
This module follows semantic versioning (
http://www.semver.org).