The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Plack::Middleware::FormatOutput - Format output struct by Accept header.

VERSION

Version 0.02

SYNOPSIS

        use Plack::Middleware::FormatOutput;

        builder {
                enable 'FormatOutput';
                mount "/api" => sub { return {'link' => 'content'} };
        };

DESCRIPTION

The Middleware formats output perl struct by "Accept" header param or by format param in URL.

You can get json when define:

  • Accept header application/json

    or

  • Add ?format=application/json to URL

For complete RestAPI in Perl use:

  • Plack::Middleware::RestAPI

  • Plack::Middleware::ParseContent

CONSTANTS

DEFAULT MIME TYPES

  • application/json

  • text/yaml

  • text/plain

  • text/html - it uses Rest::HtmlVis as default formater if installed

PARAMETERS

mime_type

Specify if and how returned content should be formated in browser.

For example:

        use Plack::Middleware::FormatOutput;
        use My::HTML

        builder {
                enable 'FormatOutput', mime_type => {
                        'text/html' => sub{ My::HTML::Parse(@_) }
                };
                mount "/api" => sub { return {'link' => 'content'} };
        };

htmlvis (if Rest::HtmlVis is installed)

Define parameters for Rest::HtmlVis.

For example:

        use Plack::Middleware::FormatOutput;

        builder {
                enable 'FormatOutput', htmlvis => {
                        links => 'My::Links'
                };
                mount "/api" => sub { return {'links' => 'content'} };
        };

TUTORIAL

http://psgirestapi.dovrtel.cz/

AUTHOR

Vaclav Dovrtel, <vaclav.dovrtel at gmail.com>

BUGS

Please report any bugs or feature requests to github repository.

ACKNOWLEDGEMENTS

Inspired by https://github.com/towhans/hochschober

REPOSITORY

https://github.com/vasekd/Plack-Middleware-FormatOutput

LICENSE AND COPYRIGHT

Copyright 2015 Vaclav Dovrtel.

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.