Skip to content

Commit

Permalink
Add JSONIFY_MIMETYPE configuration variable
Browse files Browse the repository at this point in the history
Allow jsonify responses' mimetype to be configured
  • Loading branch information
sloria committed Feb 16, 2016
1 parent 2094e8f commit 6afffdb
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ Released on June 13th 2013, codename Limoncello.
information around which means that teardown handlers are able to
distinguish error from success cases.
- Added the ``JSONIFY_PRETTYPRINT_REGULAR`` configuration variable.
- Added the ``JSONIFY_MIMETYPE`` configuration variable.
- Flask now orders JSON keys by default to not trash HTTP caches due to
different hash seeds between different workers.
- Added `appcontext_pushed` and `appcontext_popped` signals.
Expand Down
1 change: 1 addition & 0 deletions docs/config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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`` Mimetype 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
Expand Down
1 change: 1 addition & 0 deletions flask/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
})

Expand Down
2 changes: 1 addition & 1 deletion flask/json.py
Original file line number Diff line number Diff line change
Expand Up @@ -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']
)


Expand Down
12 changes: 12 additions & 0 deletions tests/test_basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -1029,6 +1029,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__)

Expand Down

0 comments on commit 6afffdb

Please sign in to comment.