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.