NAME
Mojolicious::Controller::REST - Mojolicious Controller for RESTful operations
VERSION
version 0.006
SYNOPSIS
# In Mojolicious Controller
use Mojo::Base 'Mojolicious::Controller::REST';
$self->data( hello => 'world' )->message('Something went wrong');
# renders json response as:
{
"data":
{
"hello": "world"
},
"messages":
[
{
"severity": "info",
"text": "Something went wrong"
}
]
}
DESCRIPTION
Mojolicious::Controller::REST helps with JSON rendering in RESTful applications. It follows and ensures the output of the method in controller adheres to the following output format as JSON:
{
"data":
{
"<key1>": "<value1>",
"<key2>": "<value2>",
...
},
"messages":
[
{
"severity": "<warn|info>",
"text": "<message1>"
},
{
"severity": "<warn|info>",
"text": "<message2>"
},
...
]
}
Mojolicious::Controller::REST extends Mojolicious::Controller and adds below methods
METHODS
data
Sets the data element in 'data' array in JSON output. Returns controller object so that other method calls can be chained.
message
Sets an individual message in 'messages' array in JSON output. Returns controller object so that other method calls can be chained.
A custom severity value can be used by calling message as:
$self->message('Something went wrong', 'fatal');
# renders json response as:
{
"messages":
[
{
"text": "Something went wrong",
"severity": "fatal"
}
]
}
message_warn
Similar to message, but with severity = 'warn'. Returns controller object so that other method calls can be chained.
status
Set the status of response. Returns controller object so that other methods can be chained.
AUTHOR
Abhishek Shende <abhishekisnot@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Abhishek Shende.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.