Flask로 RestAPI를 작성해서 브라우저에서 보면 JSON이 제대로 나오지 않는 경우가 있다. 이때 두가지를 패치했다.
json.dumps 메서드를 partial을 이용해서 기본값을 변경했다. response 헤더에서 Content-Type 값이 application/json만 있는 경우 charset=utf-8 부분도 추가할 수 있도록 했다.
JSON_AS_ASCII = False
JSONIFY_MIMETYPE = "application/json; charset=utf-8"
import json
from functools import partial
from flask import Response
def patch_json_response(app):
json.dumps = partial(json.dumps, ensure_ascii=app.config['JSON_AS_ASCII'])
@app.after_request
def patch_content_type(response: Response):
if response.headers.get('Content-Type', type=str, default='').startswith('application/json'):
response.headers.set('Content-Type', app.config['JSONIFY_MIMETYPE'])
return response