Работа с опциями Swift и частичным представлением / ответами в формате JSON в REST - PullRequest
0 голосов
/ 02 мая 2018

Если мой REST API может отправлять частичные ответы обратно (как указано здесь: https://developers.google.com/gmail/api/guides/performance),, лучше ли сделать все мои свойства в моих объектах Swift необязательными? Или есть другой шаблон для обработки этого?

Например, мой пользовательский объект:

public struct User: Decodable {
    var id: Int
    var firstName: String
    var lastName: String
    var phoneNumber: String?
    var verified: Bool
}

В БД только номер телефона необязателен, все остальные обязательны. Следовательно, только номер телефона в моем быстром объекте отмечен как дополнительный. Однако, когда дело доходит до ответов API, не все запросы для пользовательских объектов будут содержать все обязательные свойства. Например, если мне нужно узнать, какие пользователи проверены (GET / users? Verify = true & fields = id), мой ответ будет просто набором идентификаторов пользователей.

Значит ли это, что в Swift мне нужно пометить все свойства, кроме id, как необязательные?

Смежный вопрос по SO: Следует ли использовать опционально для свойств объектных моделей, которые будут анализироваться из JSON?

1 Ответ

0 голосов
/ 08 мая 2018

Если вы получаете только идентификаторы, вы можете создать другой объект для его декодирования:

public struct IdList: Decodable {
  var ids:[String]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...