
Plack::Middleware::JSONP::Headers - Wraps JSON response with HTTP headers in JSONP

version 0.11

enable "JSONP::Headers",
callback_key => 'callback',
headers => qr/^(X-|Link$)/,
template => '{ "meta": %s, "data": %s }';

Plack::Middleware::JSONP::Headers wraps JSON response in JSONP (just like Plack::Middleware::JSONP) and adds HTTP header information. For instance the JSON response
{ "foo": "bar" }
with query parameter callback set to doz is wrapped to
doz({
"meta": {
"status": 200,
"Content-Type": "application/javascript"
},
"data": { "foo": "bar" }
})
The HTTP headers to be wrapped can be configured. All header values are returned as strings (repeatable headers are ignored) with one exception: Link-headers are parsed and returned as array of <[ url, options ]> tuples.
Same as Plack::Middleware::JSONP this middleware only works with a non-streaming response.

Callback query parameter. Set to callback by default.
List of HTTP headers or regular expression of headers to add to the response. One can alternatively pass a code reference that gets each header as key-value pair. By default all headers are wrapped.
String template for sprintf to construct the JSON response from HTTP headers (first) and original response (second). Set to { "meta": %s, "data": %s } by default.

Inspired by http://developer.github.com/v3/#json-p-callbacks.

Jakob Voß <voss@gbv.de>

This software is copyright (c) 2012 by Jakob Voß.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.