-
-
Save hirobert/394981a661cbf78d442e to your computer and use it in GitHub Desktop.
from flask import abort, make_response, jsonify | |
abort(make_response(jsonify(message="Message goes here"), 400)) |
Also you could do just
abort(jsonify(message="Message goes here"))
This is it 🚀
@tamirOK in decorators you want to raise errors in some cases and not to return
Notice that
abort(jsonify(message="Message goes here"))
returns 200
status code.
THANK YOU THIS SAVED MY LIFE.
I was sooo frustrated. My solution is this:
abort(make_response(jsonify(errors=['Your input sucks', 'our service is down', 'Google is being slow suck it']), status, HEADERS))
thank you!
This is goofy, because jsonify
already returns a Response, but then you have to wrap it in another one just to set the status code. Why is abort
this bad this many years on?
I'm doing abort(Response(f'{{["error":{str(ex)}}}\n'], status=400, content_type='application/json'))
instead, because I regard it to be less of a hack. But really jsonify should have a parameter that allows you to set the status.
@pavelkomarov You can return specific status with jsonify
by returning a tuple like this for example:
return jsonify({"error": "Unauthorized"}), 401
If you have your API code in a blueprint, you can also do this I believe
@blueprint_api.errorhandler(404)
def not_found(error):
return make_response(jsonify({'error': 'Sorry, board not found'}), 404)
The good thing here is that any other requests outside of the blueprint will continue to see the normal 404 page
<3