Я пытаюсь десериализовать сложный запрос GET в структуру вложенных объектов.
Запросы GET выглядят так:
curl 'localhost:8080/?id=1&inner.id=1'
, а код должен выглядеть так:
class RootObj(val id: Int, inner: InnerObject)
class InnerObject(val id: Int)
@RestController
class SearchController {
@GetMapping(path = ["/"])
fun getRoot(rootObj: RootObj): String {
return "ok"
}
}
Я думаю, это не работает из коробки, потому что Spring не знает, как правильно создать эту вложенную структуру.
Parameter specified as non-null is null: [...] parameter inner","path":"/"}%
Есть ли способ решить эту проблему? Может быть, предоставить полностью настраиваемый код десериализатора?
В качестве альтернативного решения, я думаю, я мог бы сгладить иерархию объектов, но для этого я должен иметь возможность сопоставить параметр запроса, например inner.id
, с полем с именем innerId