Какая польза от модели данных при разборе API в swift - PullRequest
0 голосов
/ 07 сентября 2018

Почему мы должны использовать модель данных при разборе API. тогда как мы можем просто получить ответ в классе ViewController самостоятельно.

Может кто-нибудь сказать мне, почему мы должны использовать модель данных для анализа ответа API.

Заранее спасибо

1 Ответ

0 голосов
/ 07 сентября 2018

Представьте, что у вас ниже json ответ от сервера после вызова API:

{
"settings": {
    "isUserActive": false,
    "isUserAdmin": false,
    "rollNumber": 10,
    "userId": 2,
    "userName": "John"
},
"status": 200,
"message": "Success"
}

Теперь, как вы получите доступ к значению, если вы не используете модель данных. Это будет похоже на

let name = response["settings"]["userName"] 

(Предполагается, что вы преобразовали JSON в словарь)

1) Что если вам нужно использовать имя пользователя в нескольких местах, то вам придется повторить то же самое.

2) Приведенный выше ответ json прост, поэтому будет легко получить определенное значение, но представьте себе json, где есть вложенные объекты, попытка получить значение вручную может быть болезненной.

3) Если вы работаете в команде, есть вероятность, что некоторые разработчики могут ошибиться в написании ключа, а отладка может занять несколько часов.

Используя модель данных, компилятор выдаст ошибку, если свойство будет написано с ошибкой во избежание ошибок.

4) Вам придется вводить каждый раз при получении данных из словаря.

При использовании моделей данных необходимо выполнять типирование только один раз, т.е. при разборе JSON.

Всей этой боли можно избежать, просто используя модель данных, вам нужно только один раз проанализировать json, и вы можете просто использовать ключ как свойство для доступа к значению.

Например, посмотрите настройки json, после того, как вы проанализируете его для модели данных, его можно использовать так:

let data = dataModel(json: jsonResponse)
data.settings.userName // John
data.settings.rollNumber //10
data.status //200

Это хороший инструмент для преобразования JSON в модели данных Ссылка

Надеюсь, это поможет.

...