繁体   English   中英

REST API中的普通(非HTML)错误页面

[英]Plain (non-HTML) error pages in REST api

我正在用Flask写一个简单的REST服务。 当我的代码中发生异常时,我会在浏览器中收到一条不错的错误消息和一个交互式调试器。 但是,如果我从命令行(例如,使用curl)或在单元测试中调用该服务,但出现故障,我仍然会收到格式化(HTML)错误消息。 我记得有时我会收到一条纯文本消息(基本上只是Python错误+追溯),而且我不知道Flask如何决定提供纯文本或HTML。

在没有浏览器的情况下,如何使Flask返回普通的(非交互式,非HTML)错误消息?

要在生产模式下处理异常,请为500个状态码注册错误处理程序。 从中您可以返回任何想要的东西。 这是一个以纯文本形式返回异常本身的示例:

@app.errorhandler(500)
def error_500(exception):
    return str(exception), 500, {'Content-Type': 'text/plain'}

如果您正在编写的是API,则将JSON编码的数据作为application/json可能更合适。

设置app.debug = False可关闭错误的错误报告。 文档还有更多关于调试模式的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM