Как отобразить внутренний объект, который изменяется на основе запроса конечной точки, с помощью GitHub Mantle?

У меня есть следующий сценарий:

  • веб-сервис, предоставляющий ответы, заключенные в один и тот же объект (описано ниже)
  • внутренний объект может быть совершенно другим в зависимости от вызываемой конечной точки
  • Я использую GantHub's Mantle для сопоставления моделей в приложении для iOS

Базовая оболочка ответа выглядит так:

{ 
"UserId": "1234",
"Error": false,
"Message": "",
"DataObject": null
}

DataObject собственность может быть чем угодно. то есть это может быть класс DTOUser, подобный этому:

{
"Username":"myusername",
"Email": "myemail@provider.com"
}

Как бы вы сопоставили это с Mantle? Я думал о создании базового класса ответа, который содержит данные обертки, а затем все мои внутренние модели наследуются от этого класса. Но тогда у меня будет два класса для каждого ответа, так как контейнер будет клоном базового класса с переопределением преобразователя для типа DataObject, что не элегантно.

Я думал о создании класса-обертки и отдельного класса внутренней модели и просто сопоставил ответ с первым, а затем сопоставил тот же ответ со вторым, но это тоже не элегантно.

Как бы вы это сделали?

0 ответов

Другие вопросы по тегам