Fixup support for content types in other places then Headers.
This commit is contained in:
parent
3944c29c96
commit
f2668824b3
@ -4,8 +4,6 @@ import functools
|
|||||||
import logging
|
import logging
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import mimetypes
|
|
||||||
|
|
||||||
import wsme
|
import wsme
|
||||||
import wsme.api
|
import wsme.api
|
||||||
import wsme.rest.json
|
import wsme.rest.json
|
||||||
@ -17,23 +15,27 @@ import flask
|
|||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def get_data_format():
|
TYPES = {
|
||||||
dataformat = None
|
'application/json': wsme.rest.json,
|
||||||
|
'application/xml': wsme.rest.xml,
|
||||||
|
'text/xml': wsme.rest.xml
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def get_dataformat():
|
||||||
if 'Accept' in flask.request.headers:
|
if 'Accept' in flask.request.headers:
|
||||||
if 'application/json' in flask.request.headers['Accept']:
|
for t in TYPES:
|
||||||
dataformat = wsme.rest.json
|
if t in flask.request.headers['Accept']:
|
||||||
elif 'text/xml' in flask.request.headers['Accept']:
|
return TYPES[t]
|
||||||
dataformat = wsme.rest.xml
|
|
||||||
|
|
||||||
# Look for the wanted data format in the request.
|
# Look for the wanted data format in the request.
|
||||||
if hasattr(flask.request, 'dataformat'):
|
req_dataformat = getattr(flask.request, 'response_type', None)
|
||||||
mimetypes.guess_type(flask.request)
|
if req_dataformat in TYPES:
|
||||||
if dataformat is None:
|
return TYPES[req_dataformat]
|
||||||
log.info('''Could not determine what format is wanted by the
|
|
||||||
caller, falling back to json''')
|
|
||||||
dataformat = wsme.rest.json
|
|
||||||
|
|
||||||
return dataformat
|
log.info('''Could not determine what format is wanted by the
|
||||||
|
caller, falling back to json''')
|
||||||
|
return wsme.rest.json
|
||||||
|
|
||||||
|
|
||||||
def signature(*args, **kw):
|
def signature(*args, **kw):
|
||||||
@ -53,7 +55,7 @@ def signature(*args, **kw):
|
|||||||
flask.request.mimetype
|
flask.request.mimetype
|
||||||
)
|
)
|
||||||
|
|
||||||
dataformat = get_data_format()
|
dataformat = get_dataformat()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
status_code = None
|
status_code = None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user