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.

SYNOPSIS

        use Plack::Middleware::FormatOutput;

        builder {
                enable 'FormatOutput';
                mount "/api" => sub { return [200, undef, {'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::App::REST

  • Plack::Middleware::ParseContent

CONSTANTS

DEFAULT MIME TYPES

  • application/json

  • text/yaml

  • text/plain

  • text/html - it uses Rest::HtmlVis as default formatter 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 [200, undef, {'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 [200, undef, {'links' => 'content'}] };
        };

TUTORIAL

http://psgirestapi.dovrtel.cz/

AUTHOR

Václav Dovrtěl <vaclav.dovrtel@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

COPYRIGHT

Copyright 2015- Václav Dovrtěl

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.