Spring Boot определить наличие в запросе необязательного параметра
От: karbofos42 Россия  
Дата: 26.04.23 06:06
Оценка:
Так сложилось, что на Spring Boot нужно воспроизвести уже существующий API другой системы.
Там используются частичные update записей, т.е. у запроса есть необязательные параметры и в БД нужно изменить только то, что передано.

Нужно в общем обработать запросы вида:
1) /update?id=10&name=имя
меняет у записи с id=10 только значение "name", т.к. другие не были переданы.
2) /update?id=10&name=имя&value=
уже должен поменять name и value, т.к. они переданы. value соответственно идёт как null
3) /update?id=10&name=имя&value=10
так же меняет name и value и у value значение 10

Вот непонятно как нормально отличать случаи 1 и 2.
Если аргумент метода описать обычно:
@RequestParam(name = "value", required = false) Long value

то в обоих случаях будет null и не понятно: нужно в БД записать null или этот параметр не нужно изменять.

Принимать на вход ещё какой-нибудь HttpServletRequest и из него вручную получать информацию о наличии каждого параметра?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.