Получить одну конкретную часть составной части как DTO, а остальные как часть, использующую Spring Webflux?

Я разрабатываю контроллер Spring Webflux, который ожидает несколько "частей" в одном многочастном запросе. Есть только одна обязательная часть, которая известна заранее, а остальные являются динамическими и неизвестными для сервера.

Т.е. я пытаюсь сделать что-то вроде этого (псевдокод не работает):

@RequestMapping(value = "/executesampleservice", method = RequestMethod.POST, consumes = {"multipart/form-data"})
@ResponseBody
public boolean executeSampleService(
        @RequestPart("myDto") @Valid MyDto myDto,
        @RequestPart Flux<Part> otherParts) {
        ...
    }

Т.е. я бы хотел, чтобы множественная часть называлась myDto быть сопоставленным с классом MyDto и остальные части (чьи контрольные имена неизвестны) должны быть сопоставлены otherParts,

Я знаю, что могу сделать:

@RequestMapping(value = "/executesampleservice", method = RequestMethod.POST, consumes = {"multipart/form-data"})
@ResponseBody
public boolean executeSampleService(@RequestBody Flux<Part> otherParts) {
            ...
        }

но тогда (я думаю) я теряю встроенное преобразование из myDto к MyDto класс (т.е. я должен вручную найти часть с именем "myDto" и преобразовать ее в MyDto класс, и я не уверен, как лучше всего выполнить это преобразование).

Какой рекомендуемый способ решить это? Если мой последний пример - это путь, то как мне конвертировать из Part в MyDto не изобретая велосипед?

0 ответов

Другие вопросы по тегам