阿拉莫火 5 响应可解码故障



Alamofire有一个漂亮的.responseDecodable函数,可以在request.result = .success时使解析变得简单,但是,在failure的情况下如何解码错误对象?

就我而言,后端可能会返回无数错误,因为例如,信用卡收费可能有无限的原因 - OTP 失败、拒绝等。

我应该改变处理请求的方法吗?由于Alamofire并不真正支持错误处理(至少在responseDecodable的情况下(。

这完全取决于您的回复结构。有几种方法可以解决这个问题:

  • 创建一个表示响应的enum,通用于成功(也许是失败(值。类似于APIResponse<Success>,它本身是Decodable的,并且会尝试解析响应中的成功值或错误。这将允许您继续使用responseDecodable但您必须自己纠正 Alamofire 生成的请求错误的响应错误。
  • 创建你自己的ResponseSerializer,知道如何解码成功和失败值,你可以将其与Alamofire的response方法挂钩。
  • 相关地,您可以使用使用自定义序列化程序的自定义response方法扩展DataRequest

最新更新