add comments on why we returns non form media types by default (#436)

master
Yannick Chabbert 2019-11-14 14:03:11 +01:00 committed by Cristi Vîjdea
parent 5c25ecd8f2
commit b700191f46
1 changed files with 4 additions and 0 deletions

View File

@ -375,8 +375,12 @@ def get_consumes(parser_classes):
parser_classes = [pc for pc in parser_classes if not issubclass(pc, FileUploadParser)] parser_classes = [pc for pc in parser_classes if not issubclass(pc, FileUploadParser)]
media_types = [parser.media_type for parser in parser_classes or []] media_types = [parser.media_type for parser in parser_classes or []]
non_form_media_types = [encoding for encoding in media_types if not is_form_media_type(encoding)] non_form_media_types = [encoding for encoding in media_types if not is_form_media_type(encoding)]
# Because some data to parse could be nested array and are not supported by form media type like multipart/form-data,
# we must be sure to have explicit form media types **only**.
if len(non_form_media_types) == 0: if len(non_form_media_types) == 0:
return media_types return media_types
# Otherwise, enforce a media type like application/json to be able to parse nested array, but it won't be able to
# support file upload...
else: else:
return non_form_media_types return non_form_media_types