NAME
Slick::Context
SYNOPSIS
Slick::Context is an Moo wrapper around the HTTP lifecycle. It encompases a Plack::Request and a bunch of other helpers to make it easy to handle HTTP in Slick.
API
content
$s->post('/foo', sub {
    my ($app, $context) = @_;
    my $data = $context->content;
});
Decodes the body of the Plack::Request via the following:
JSON=> JSON::TinyYAML=> YAML::TinyURL ENCODED=> URL::EncodeOTHER=> returns as text/bytes
body
$s->get('/foo', sub {
    my ($app, $context) = @_;
    $context->body('Foo!');
});
Sets the body of the response to whatever is provided. Note: You'll probably want to use "html", "json", "text" or "yaml" instead of this.
html
$s->get('/foo', sub {
    my ($app, $context) = @_;
    $context->body('<h1>Foo!</h1>');
});
Sets the body of the response and sets the Content-Type header to text/html. Returns the context.
Note, you should have use utf8; enabled.
json
$s->get('/foo', sub {
    my ($app, $context) = @_;
    $context->json({ hello => 'world' });
});
Sets the body of the response and sets the Content-Type header to application/json. Returns the context.
Note, you should have use utf8; enabled.
yaml
$s->get('/foo', sub {
    my ($app, $context) = @_;
    $context->yaml([ { hello => 'world' });
});
Sets the body of the response and sets the Content-Type header to application/yaml. Returns the context.
Note, you should have use utf8; enabled.
text
$s->get('/foo', sub {
    my ($app, $context) = @_;
    $context->text("Hello World!");
});
Sets the body of the response and sets the Content-Type header to text/plain. Returns the context.
Note, you should have use utf8; enabled.
to_psgi
Converts the Slick::Context to Plack response. In the format:
[$status, [ @headers ], [ @body ]]
status
$s->get('/foo', sub {
    my ($app, $context) = @_;
    $context->status(201);
});
Sets the status code of the response, returns the context.
redirect
$s->get('/foo', sub {
    my ($app, $context) = @_;
    $context->redirect("/foo");
});
Sets the response to redirect to a given location, optionally provide another status code as a second argument if you don't want 303. Returns the context object.
header
$s->get('/foo', sub {
    my ($app, $context) = @_;
    $context->header(Foo => 'bar');
});
Sets a header on the underlying response HashRef. Returns the context.
response
Returns the response HashRef that will be used to create the PSGI response via "to_psgi".
query
$s->get('/foo', sub {
    my ($app, $context) = @_;
    $context->query('bar');
});
Returns the value of a specified query parameter key, returns undef if there is no such key.
See "queries" for the raw query parameter HashRef.
queries
$s->get('/foo', sub {
    my ($app, $context) = @_;
    $context->queries->{'bar'};
});
Returns the query parameters as a HashRef.
param
$s->get('/foo', sub {
    my ($app, $context) = @_;
    $context->param('bar');
});
Returns the value of a specified path parameter key, returns undef if there is no such key.
See "params" for the raw path parameter HashRef.
params
$s->get('/foo/{bar}', sub {
    my ($app, $context) = @_;
    $context->params->{'bar'};
});
Returns the path parameters as a HashRef.
stash
Returns a transient HashRef that is persistent per request, this is for inter-layer communication.
id
Returns an arbitrary tracing ID in the form of a 4-digit number.
See also
2 POD Errors
The following errors were encountered while parsing the POD:
- Around line 412:
 Unknown directive: =over2
- Around line 414:
 '=item' outside of any '=over'