AlamofireExtended
扩展 Alamofire,通过协议扩展各种类。
Alamofire 是一个用 Swift 编写的优秀 HTTP 网络库,但围绕使用具体类的代码编写测试可能会很痛苦。
Alamofire 的几个类已经通过扩展的神奇之处而得到了扩展
-
SessionManager 现在遵守了 SessionManagerProtocol 协议,每个请求、下载和上传方法都返回一个 DataRequest 协议
-
SessionManagerProtocol 定义了所有公共属性和方法,因此对
SessionManagerProtocol
的依赖应该像对SessionManager
的依赖一样简单。由于 Alamofire 的会话管理器符合这个新协议,所以可以在初始化器中将依赖项默认为一些值,如下所示init(manager: SessionManagerProtocol = SessionManager.default)
-
各种请求类型已被扩展,使它们也符合协议。由于
DataRequest
、DownloadRequest
和UploadRequest
类型是从Request
类型继承的,因此有一个通用的RequestProtocol
。DataRequestProtocol
继承自RequestProtocol
DownloadRequestProtocol
继承自RequestProtocol
和DownloadRequestProtocol
UploadRequestProtocol
只继承自RequestProtocol
Alamofire 的 DataRequest
继承自他们的 Request
类型,现在此类型 DataRequest
符合 RequestProtocol
和 DataRequestProtocol
。
Alamofire 的 DownloadRequest
继承自他们的 Request
类型,现在此类型 DownloadRequest
符合 RequestProtocol
和 DownloadRequestProtocol
。
Alamofire 的 UploadRequest
继承自他们的 DataRequest
类型,现在此类型 UploadRequest
符合 UploadRequestProtocol
。由于 DataRequest
类型符合 RequestProtocol
,因此 UploadRequest
间接符合 RequestProtocol
。
包
此包可以与 Swift 包管理器或 CocoaPods 一起使用。
支持的操作系统版本
- macOS(.v10_12),
- iOS(.v10),
- tvOS(.v10),
- watchOS(.v4)