Skip to content

sbrauer/print_json_middleware

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

print_json_middleware

JSON prettyprinter WSGI middleware

Handy for viewing JSON payloads which would otherwise be downloaded by your web browser (due to the Content-Type response header being set to an unrecognized type like "application/json").

If a special query parameter (by default "pj", short for "Print JSON") is found in the query string, assume the response body contains JSON data which should be "printed" to the response by setting the response Content-Type to "text/plain".

Example usage:

http://foo.org/some/json?pj

If the parameter has a positive integer value, prettyprint the JSON (sort the keys and treat the parm value as an indent value).

Example usage:

http://foo.org/some/json?pj=2

Note that the parameter is removed from the request query string before the middleware invokes the wrapped application.

Setup

Edit your Paste .ini file and add a new filter section:

[filter:print_json]
use = egg:print_json_middleware#print_json

Then find the application section (typically under the header [app:main]) and add:

filter-with = print_json

If you'd rather use some other parameter name than "pj", specify it in the [filter:print_json] section:

parm = whatever

As an alternative to Paste configuration, you could do the application wrapping in Python code:

from print_json_middleware import PrintJsonMiddleware
application = PrintJsonMiddleware(application)

If you'd rather use some other parameter name than "pj", pass it as a second argument:

application = PrintJsonMiddleware(application, "whatever")

About

JSON prettyprinter WSGI middleware

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages