Returning API Error Messages with Python and Flask
我正在使用Python和Flask设计RESTful API。正如所料,如果一切顺利,API需要接收API请求并返回数据,但在错误的情况下,它需要轻微失败并返回正确的错误。我通常在出现错误时引发异常,但在这种情况下,我需要将错误消息返回给用户(try-catch块?)。
我目前处理错误的方法是让我的函数返回数据和错误,并检查每个级别的数据,最后将数据或错误返回给API函数的调用者。
这样做的问题是,当存在多个级别的函数调用时,它会变得很麻烦,需要我的函数多次传递数据和错误,并且每次都执行检查。
有一个更好的方法吗?我可以做些什么改进使错误传播更简单和优雅?
以下是我当前返回错误的示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | def get_data() data1, error = get_some_data() # function not shown if data1 is None: return None,"could not retrieve data1" data2, error = get_some_other_data() # function not shown if data2 is None: return None,"could not retrieve data2" return (data1, data2), None @app.route("/api/method", methods=['GET']) def method(): data, error = get_data() if data is None: if error is None: error ="unknown error" return json.dumps({"error": error }), 500 return json.dumps({"data": data }), 200 |
您可以使用
也许Flask API更适合您的需求,因为它专为RESTful API而设计。
它具有比Flask更好的异常处理,请参阅:http://www.flaskapi.org/api-guide/exceptions/