2016-10-27 2 views
1

Мы используем контроллеры пружинных для обработки файлов загрузки:Java чванство (Springfox) аннотации для потоковых многочастного файла загрузить

Например:

@RequestMapping(value = "/scan", method = RequestMethod.POST, consumes = {MediaType.MULTIPART_FORM_DATA_VALUE}) 
public ScanResult scan(HttpServletRequest request) throws IOException, FileUploadException { 
    return scanService.scanFile(parseMultipart(request)); 
} 

Но мы не используем любой многотомный распознаватель, мы потоковые файлы из входного потока запроса сервлета. Нам нужно немедленно начать обработку файла по соображениям производительности.

При этом мы не можем использовать типичное обнаружение/конфигурацию для многостраничных файлов. Я знаю, что Springfox (который мы используем для создания наших XML-документов) генерирует соответствующие элементы управления swagger, если он видит параметр MultipartFile в качестве параметра контроллера, что для нас не будет.

Есть ли какие-либо другие параметры конфигурации, доступные для подсказки Springfox, которые мы хотим загрузить здесь?

ответ

2

Найдено моего ответа здесь: https://github.com/springfox/springfox/issues/1285

Следующие неявный PARAMS дать мне то, что мне нужно:

@ApiImplicitParams (value = { 
    @ApiImplicitParam(dataType = "file", name = "file", required = true,paramType = "form")} 
@RequestMapping(value = "/scan", method = RequestMethod.POST, consumes = {MediaType.MULTIPART_FORM_DATA_VALUE}) 
public ScanResult scan(HttpServletRequest request) throws IOException, FileUploadException { 
    return scanService.scanFile(parseMultipart(request)); 
} 

Это добавляет простой выбор файлов в API. Чтобы сделать вещи более запутанными, выясняется, что эта функция была нарушена в Springfox 2.4 - той версии, которую я использовал. Добавление этих аннотаций и обновлений было всем необходимым.

+0

Большое спасибо за разделение этого. И для любых будущих зрителей Springfox 2.7.0-SNAPSHOT нарушает эту функциональность, хотя работает в 2.6.0. – jrahhali

Смежные вопросы