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