Как отобразить внутренний объект, который изменяется на основе запроса конечной точки, с помощью GitHub Mantle?
У меня есть следующий сценарий:
- веб-сервис, предоставляющий ответы, заключенные в один и тот же объект (описано ниже)
- внутренний объект может быть совершенно другим в зависимости от вызываемой конечной точки
- Я использую GantHub's Mantle для сопоставления моделей в приложении для iOS
Базовая оболочка ответа выглядит так:
{
"UserId": "1234",
"Error": false,
"Message": "",
"DataObject": null
}
DataObject
собственность может быть чем угодно. то есть это может быть класс DTOUser, подобный этому:
{
"Username":"myusername",
"Email": "myemail@provider.com"
}
Как бы вы сопоставили это с Mantle? Я думал о создании базового класса ответа, который содержит данные обертки, а затем все мои внутренние модели наследуются от этого класса. Но тогда у меня будет два класса для каждого ответа, так как контейнер будет клоном базового класса с переопределением преобразователя для типа DataObject, что не элегантно.
Я думал о создании класса-обертки и отдельного класса внутренней модели и просто сопоставил ответ с первым, а затем сопоставил тот же ответ со вторым, но это тоже не элегантно.
Как бы вы это сделали?