diff --git a/CHANGES b/CHANGES index 37fe8694fc..2befdc8730 100644 --- a/CHANGES +++ b/CHANGES @@ -76,6 +76,7 @@ Version 1.0 - ``flask.ext`` is now deprecated (pull request ``#1484``). - ``send_from_directory`` now raises BadRequest if the filename is invalid on the server OS (pull request ``#1763``). +- Added the ``JSONIFY_MIMETYPE`` configuration variable (pull request ``#1728``). Version 0.10.2 -------------- diff --git a/docs/config.rst b/docs/config.rst index 8cef0686e3..1d9445d358 100644 --- a/docs/config.rst +++ b/docs/config.rst @@ -183,6 +183,7 @@ The following configuration values are used internally by Flask: if they are not requested by an XMLHttpRequest object (controlled by the ``X-Requested-With`` header) +``JSONIFY_MIMETYPE`` MIME type used for jsonify responses. ``TEMPLATES_AUTO_RELOAD`` Whether to check for modifications of the template source and reload it automatically. By default the value is diff --git a/flask/app.py b/flask/app.py index 7522c8e0f6..6a5391060d 100644 --- a/flask/app.py +++ b/flask/app.py @@ -315,6 +315,7 @@ def _set_request_globals_class(self, value): 'JSON_AS_ASCII': True, 'JSON_SORT_KEYS': True, 'JSONIFY_PRETTYPRINT_REGULAR': True, + 'JSONIFY_MIMETYPE': 'application/json', 'TEMPLATES_AUTO_RELOAD': None, }) diff --git a/flask/json.py b/flask/json.py index cfc28c53a5..2bd4790231 100644 --- a/flask/json.py +++ b/flask/json.py @@ -264,7 +264,7 @@ def get_current_user(): return current_app.response_class( (dumps(data, indent=indent, separators=separators), '\n'), - mimetype='application/json' + mimetype=current_app.config['JSONIFY_MIMETYPE'] ) diff --git a/tests/test_basic.py b/tests/test_basic.py index 3daca9cd70..8c5b0def95 100644 --- a/tests/test_basic.py +++ b/tests/test_basic.py @@ -1019,6 +1019,18 @@ def test_jsonify_prettyprint(): assert rv.data == pretty_response +def test_jsonify_mimetype(): + app = flask.Flask(__name__) + app.config.update({"JSONIFY_MIMETYPE": 'application/vnd.api+json'}) + with app.test_request_context(): + msg = { + "msg": {"submsg": "W00t"}, + } + rv = flask.make_response( + flask.jsonify(msg), 200) + assert rv.mimetype == 'application/vnd.api+json' + + def test_url_generation(): app = flask.Flask(__name__)