RFC-7807 Error documents for Tornado
Project description
This library provides a version of tornado.web.RequestHandler.send_error that speaks application/problem+json instead of HTML. The easiest way to use this library is to inherit from problemdetails.ErrorWriter and raise problemdetails.Problem exceptions instead of HTTPError.
class MyHandler(problemdetails.ErrorWriter, web.RequestHandler):
def get(self):
if not self.do_something_hard():
raise problemdetails.Problem(status_code=500,
title='Failed to do_something_hard')
HTTP/1.1 500 Internal Server Error
Content-Type: application/problem+json
{
"status": 500,
"title": "Failed to do_something_hard",
"type": "https://tools.ietf.org/html/rfc7231#section-6.6.1"
}
You can easily construct more substantial response documents by passing additional keyword parameters to the problemdetails.Problem initializer. They become top-level properties in the response document.
You can also call send_error directly and produce a response docuemnt. The following snippet produces the same output as the previous snippet.
class MyHandler(problemdetails.ErrorWriter, web.RequestHandler):
def get(self):
try:
self.do_something_hard()
except SomeException as error:
self.send_error(500, title="Failed to do_something_hard")
The interface of tornado.web.RequestHandler.send_error is less expressive since keyword parameters may be swallowed by intervening code. The only parameters that are recognized are: instance, title, and type. Use the exception-based interface for more substantial documents.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for tornado-problem-details-0.0.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba3846a15fead7f342b1bec0a2236825f2db9ca4fd793f14e8838b85c62d61c0 |
|
MD5 | 179f49348ecdc2570063f8e46a2932f8 |
|
BLAKE2b-256 | 99e9f323b4caa1d7f9d5d034e34119916599befd9f50918b2c735a692a6a5b75 |
Hashes for tornado_problem_details-0.0.6-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71ab2b55c35dc7227579d408c51a1ed4ea53866b75a606c274ea93d98d2e2aa3 |
|
MD5 | f35f83c7d100533e4046bd0f9ae5a9d6 |
|
BLAKE2b-256 | 6c389b500bdf41f154de4e220876708f6a31ed470dae30027e323d57d10f57ec |