AlamofireRouter 1.0.0

AlamofireRouter 1.0.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2016年10月
SwiftSwift 版本3.0
SPM支持 SPM

Alex Corlatti 维护。



AlamofireRouter

AlamofireRouter 是一个简单的 Alamofire 路由器。如果您需要 Swift 2.3 版本,请使用 0.1.0 的 Pod 版本

示例

要运行示例项目,请克隆仓库,并首先从 Example 目录中运行 pod install

要求

  • iOS 9.0+ / Mac OS X 10.9+ / tvOS 9.0+ / watchOS 2.0+
  • Xcode 8.0+

用法

您必须创建一个符合 RouterProtocolenum,因此您需要必需的变量 routerURLRequest 函数。

router 中,您必须设置您的 API 基础 URL。

URLRequest 中,您可以通过 router.endPoint 函数创建端点。

router.endPoint 函数有四个参数

  • path: String 端点的路径
  • method: Alamofire.HTTPMethod 请求方法,默认为 .get
  • parameters: [String : Any] 如果需要,参数,默认为 [ : ]
  • encoding: ParameterEncoding 编码类型,默认为 URLEncoding.default
  • headers: [[String: String]] 如果需要,头部参数,默认为 [[:]]

创建您的路由器 API

import AlamofireRouter

enum MyAPI: RouterProtocol { 

    case myRequest(myParameter: String)
    case otherRequest(otherParameter: [String: Any])
    case allPersonalizedRequest(param: String)

    var router: Router { return Router(baseURL: "http://YOUR_API_BASE_URL.com/") }

    public func asURLRequest() throws -> URLRequest {

        switch self {

            case .myRequest(let myParameter):

                return router.endPoint(path: "mypath/\(myParameter)")

            case .otherRequest(let otherParameter):

                return router.endPoint(path: "otherPath", method: .post, parameters: otherParameter)

            case .allPersonalizedRequest(let param):

                return router.endPoint(path: "myPath", method: .patch, parameters: ["par" : param], encoding: JSONEncoding.prettyPrinted, headers: [["Content-type": "json"]])

        }

    }

}

与 Alamofire 一起使用

Alamofire.request(MyAPI.myRequest(myParameter: "aValue")).response { resp in 

    // Do some stuff

}

AlamofireUIManager 一起使用

let netManager = AlamofireUIManager.sharedInstance

netManager.request(MyAPI.myRequest(myParameter: "aValue"), completionHandler: { json in

    // Do some stuff

})

作者

Alex Corlatti,[email protected]

许可证

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