FireRoutes 0.2.4

FireRoutes 0.2.4

测试受测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2016年12月
SwiftSwift 版本3.0
SPM支持 SPM

John Morgan维护。



🔥FireRoutes🔥

FireRoutes是Alamofire的一个轻量级扩展,通过Route的概念简化了网络请求。

什么是Route?

Route表示特定网络请求应该如何结构以及如何将响应数据转换为一个可用的对象。它符合Alamofire的两个协议:URLRequestConvertibleDataResponseSerializerProtocol

可以这样定义Route的子类

let baseURL = "http://www.myserver.com/api"

class AvatarRoute: Route<UIImage> {

    init(userId: String) {
        super.init()
        request = GET(baseURL + "/avatar/\(userId)_img.png")
        responseSerializer = DataRequest.imageResponseSerializer()
    }
}

这在一个类中捕获了对头像端点的所有客户端期望。在单一Routes.swift文件中定义许多路线提供了一个有用的目录,列出了应用程序可能使用的所有端点。

Route的概念还通过扩展Alamofire的SessionManager简化了发起请求的代码

manager.request(AvatarRoute(userID:"jmorgan")) { response in

    // compiler infers response.result.value to be of UIImage type
}

编译器推断出正确的Result类型,保持了代码的简洁和简单。

自定义响应序列化

尽管它的方法很简单,但FireRoutes保留了所有URLRequestConvertibleDataResponseSerializerProtocol的灵活性。您可以将其与Alamofire的其他扩展一起使用,例如AlamofireObjectMapper来生成自定义模型对象...

class MappedModelRoute: Route<MappedModel> {

    override init() {
        super.init()
        request = GET(baseURL + "/model")
        responseSerializer = DataRequest.ObjectMapperSerializer(nil)
    }
}

...这意味着响应将被解析并映射到您的自定义模型对象中

manager.request(MappedModelRoute()) { response in

    // compiler infers response.result.value to be of MappedModel type
}

安装

FireRoutes可通过CocoaPods获取。要安装,只需将以下行添加到您的Podfile

pod 'FireRoutes'

许可证

FireRoutes可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。