ios - 处理 REST 中的 Swift 选项和部分 JSON 表示/响应

标签 ios json swift rest

如果我的 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
}

在DB中,只有电话号码是可选的,其余都是必需的。因此,我的 swift 对象中只有电话号码被标记为可选。但是,当涉及 API 响应时,并非所有对用户对象的请求都将包含所有必需的属性。例如,如果我需要知道哪些用户经过验证 (GET/users?verified=true&fields=id),我的响应将只是用户 ID 的集合。

这是否意味着在 Swift 中,我需要将除 id 之外的所有属性标记为可选?

SO相关问题:Should I use optional for properties of object models that will be parsed from JSON?

最佳答案

如果您只获取 Id,您可以创建一个不同的对象来对其进行解码:

public struct IdList: Decodable {
  var ids:[String]
}

关于ios - 处理 REST 中的 Swift 选项和部分 JSON 表示/响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50126442/

相关文章:

java - *.json.swp 的 com.fasterxml.jackson.core.JsonParseException?

ios - 添加 TVOS 目标并更改 Podfile 结构后,Xcode/Cocoapods 项目搞砸了

ios - 为什么 URL 在存储然后从本地文件系统检索时会被截断?

ios - Swift 通用闭包总和

ios - Dropbox SDK - Swift - (415) 不支持的媒体类型

swift - 使用 NSAnimationContext 淡出 NSButton

objective-c - 不同目标中的两个同名 Objective C 文件,由 Swift 类使用

ios - 在 iOS 中保存照片时显示等待对话框或指示器,值得吗?

javascript - 使用angularjs将json对象传递给python

php - 使用 JSON(跨域)将数据发送到 php