Size: a a a

Java/Kotlin and more

2021 April 09

EA

Evgeny Ageev in Java/Kotlin and more
Привет. Подскажите, можно ли одновременно в ендпоинте получить и ДТО (@RequestBody) и MultipartFile[]? У меня работает либо одно, либо другое.
Даже апачевская commons-fileupload не помогла.
Пробовал 2мя путями как здесь (1. @ModelAttribute, 2. поля ДТО отдельными form-data передавать):
https://stackoverflow.com/questions/49845355/spring-boot-controller-upload-multipart-and-json-to-dto
Не сработало.
источник

PA

Pavel Artyomenko in Java/Kotlin and more
Форм-дата должна работать
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
> можно ли одновременно в ендпоинте получить и ДТО (@RequestBody) и MultipartFile[]

Ответ, закономерно, нет.

@RequestBody парсит все тело запроса. если там формат тела запроса не json/xml, а multipart/form-data (почитайте, как сериализуются данные в этом формате), то и парсить его надо соответсвующим хэндлером (и @RequestBody - это не он).

И передавать, соответственно, тоже. Т.е. не JSON с клиента передавать, а форму с полями.
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
Можно, есть там хак хитрый. Лепишь мультипарт из разных партов файл/json/что душе угодно. Потом в контроллере указываешь имя парта и нужный тип, объект или multipart file
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
Ну это ты получается будешь в multipart/form-data теле запроса каждый part отправлять со своим собственным content-type. Но вроде бы тогда в контроллере все они придут, как файлы. Разве можно каким-то образом один из партов заставить спринг в модель десериализовать через HttpMessageConverter?
источник

K

Kirill in Java/Kotlin and more
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
Круто, спасибо! Не знал про эту возможность.

Самое забавное, что это прекрасно описано в оф доках вот тут https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-multipart-forms

Похоже, настала пора снова перечитывать документацию Спринг.
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
О, а вот про multipart/mixed не знал)
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
Но я такую штуку всего раз делал 4 года назад, итак работало)
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
Я думаю такое редко используют по той причине, что такое тело запроса составить будет тот еще квест для клиента. :)
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
Ну да, надо собирать js, работать с файловыми инпутами, в целом не сложно, разобраться только один раз
источник
2021 April 10

AM

ANTARES MIRKO in Java/Kotlin and more
Есть тестовое задание где нужно реализовать api с json, где есть два сервиса
1. принимает два счета (откуда куда отправляем деньги) и сумму, на выход отдает id заявки
2. принимает id заявки и отдает статус ее

как лучше реализовать модели, сделать классы счета и заявки,  и связать many to one (заявка содержит две переменные типа класса счет)?
или как то по другому ?
источник

СЕ

Сергей Ермаков... in Java/Kotlin and more
А может лучше сразу ключи от квартиры где деньги лежат?
источник

AM

ANTARES MIRKO in Java/Kotlin and more
что?
источник

СЕ

Сергей Ермаков... in Java/Kotlin and more
Лучше это очень растяжимое понятие, надо сделать согласно задачи и все, а лучше будет после подписания трудового договора
источник

СЕ

Сергей Ермаков... in Java/Kotlin and more
Если не знаешь как, спрашивай что не знаешь, а сделать наилучшим образом невозможно
источник
2021 April 11

C

Captcha bot in Java/Kotlin and more
DI T, код неверный, обратись к админу.
источник
2021 April 12

АВ

Алексей Васин... in Java/Kotlin and more
Всем привет, а если реализовывать кастомный jwtconverter в связке oauth2, то на какой стадии он будет вызываться? До метода authenticate или уже после
источник

№T

№1 The Great in Java/Kotlin and more
Доброго времени суток. Я использую keycloak со спринг бутом. Хочу дать пользователю, который не админ, права добавлять роли другим пользователям. Он будет указывать желаемые роли в custom ui, а спринг бутовский бэкенд должен будет обращаться в keycloak и добавлять эти роли выбранным пользователям. Как обратиться программатически к keycloak? У него есть api? Прямой доступ юзера к keycloak нежелателен
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
В Гугле говорят можно доку найти по апи кейклока
источник