我使用URLRequestConvertible对我的网络调用进行分组,并减少样板代码。但是在每个responseJSON中我仍然有样板来处理我的JSON响应。它们看起来都像这些,
因为我将相关的调用分组到一个URLRequestConvertible中,所以他们的响应格式与我实际上第五步的格式相似,以便进一步检索我正在寻找的“真实”数据。
那么有没有办法在responseJSON中减少这些样板代码?
顺便说一句,我实际上为它提出了一个kludge解决方案。但我想知道有什么常见的做法吗?答案 0 :(得分:0)
我在alamofire forum #2099处提出了同样的问题并得到了使用 ResponseSerializer
的答案但是在检查了ResponseSerializer文档后,我意识到我的自制解决方案并不像我想象的那样糟糕(使用ResponseSerializer看起来相当复杂)
所以我的解决方案是向我的路由器添加一个静态验证方法,让它进行基本的验证工作(从第1步到第5步)
static func verify(json:DataResponse<Any>, request:Router) -> result //needs the 2nd
parameter b/c is a static method
现在我的调用方法改为这些,
var result = CallResult.fail
Alamofire.request(Router.Callback(input))
.responseJSON { response in
result = Router.verify(json:response,request:Router.Callback(input))
}
.responseJSON { _ in //AS I already parsed response into my result
//process the result now
}