如果我有:如何將字段添加到Moya.Response JSON,這是不是在真正的有效載荷從HTTP響應
import Moya
import RxSwift
import ObjectMapper
import Moya_ObjectMapper
provider.request(.callApi(id: id))
.mapObject(Thing.self)
.subscribeOn(ConcurrentDispatchQueueScheduler(qos: .background))
.observeOn(MainScheduler.instance)
...
struct Thing: Mappable, Equatable {
var id: String?
init?(map: Map) {
}
mutating func mapping(map: Map) {
id <- map["id"]
}
發送HTTP api調用並返回類似於{「id:」123「}的json,並且它的運行效果很好,一個新的Thing結構是用正確的id創建的,但是如果我想爲Thing添加」flavor「並且硬編碼{」id :「123」,「味道」:「某物」}。
即我們只需修改實際的http響應主體並在它到達.mapObject方法之前添加"flavor": "something"
。哪裏是正確的地方挖掘呢?
這不僅僅是將它添加到Thing中的映射函數中,因爲每個id的「something」是不同的。可能是味道:「東西1」,然後味道:「東西2」。我在相同的範圍內callApi這個值(ID:ID),所以像:
provider.request(.callApi(id: id))
.addJSON("flavor", flavor)
.mapObject(Thing.self)
.subscribeOn(ConcurrentDispatchQueueScheduler(qos: .background))
.observeOn(MainScheduler.instance)
但.addJSON
是我編造的。它不存在。但是必須有一些簡單的解決方案呢?
最終直接與Alamofire進行每個http調用,然後很簡單。如果有人很好奇,這是所有https://github.com/andrewarrow/boring_company_chat。 –