Spring.boot: привязка параметра запроса к объекту данных с вложенным Необязательным - PullRequest
0 голосов
/ 16 апреля 2020

Работая с ванилью @RestController в Spring.Boot, как вы можете использовать привязку данных по умолчанию и правильно связать вложенные атрибуты Optional в объекте данных?

С точки зрения кода это класс данных (с использованием lombok для уменьшения шаблона)

@Data
public class SomeData {
   Optional<String> name;
}

, который используется в качестве параметра запроса в маршруте GET, например:

@GetMapping("/something")
public void getSomething(SomeData data) {
  ...
}

Проблема: если нет соответствующего параметра приведенный в запросе, тогда data.name будет null вместо Optional.empty.

То, что я нашел до сих пор: * Optional обрабатывается правильно, когда вы просто используете его напрямую, например getSomething(Optional<String> name) * Дополнительные аннотации, такие как @RequestParam или @Valid, не влияют на это поведение


...