MikerNetCore 2.0.1

MikerNetCore 2.0.1

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

seongbrave 维护。



 
依赖
RxSwift~> 2.6.0
RxCocoa~> 2.6.0
Alamofire~> 3.5.0
SwiftyJSON~> 2.4.0
Result~> 2.0.0
 

说明

该项目是对 Alamofire 的封装,通过使用 RxSwiftSwiftyJSON 可以将一次请求转换成信号,并且可以借助 SwiftyJSONAccelerator 非常方便地转换成 model 对象。

如果是 http 访问,记得在 info.plist 中添加 App Transport Security Settings 设置

基础配置

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        MikerNetCore.baseUrl = "http://www.baokan.name/e/api"
        MikerNetCore.statusKey = "err_code"
        // Override point for customization after application launch.
        return true
    }

路由文件

import Foundation
import Alamofire
import MikerNetCore


public enum UserApi{
    //  UserApi
    case login(loginName: String, password: String)

    case getNewsList

}
extension UserApi: TargetType {

    //设置请求路径
    public var path: String {
        switch self {
        case .login:
            return "/login.html"
        case .getNewsList:
            return "/getNewsList.php"
        }
    }

    //设置请求方式 get post等
    public var method: Alamofire.Method {
        switch self {
        case .login:
            return .POST
        default :
            return .GET

        }
    }
    /// 设置请求参数
    public var parameters: [String: AnyObject]? {
        switch self {
        case let .login(loginName, password):
            return ["username": loginName, "password": password]
        default :
            return nil
        }
    }

}

使用

self.requestBtn.rx_tap.map{ _ in
            return UserApi.getNewsList
            }.emeRequestApiForJson().subscribeNext{ result in
                switch result {
                case .Success(let data):
                    print(data)
                case .Failure(let error):
                    print(error)
                }
            }.addDisposableTo(disposeBag)

mikerErrorCode 是服务端定义的一个错误状态码,通过返回的 status 状态码,可以转换成对应的 error 返回到界面中来,这样界面中同时可以监控到正确返回的数据和错误时所需的错误信息,方便提示给用户,这块简化了不少,这套网络请求主要还是配合 mvvm 来使用的,这块有个缺点就是返回的数据格式必须是

 public class Reg: MikerSwiftJSONAble {
    var status: Int!
    var data: JSON
    required public init?(json:JSON){
        self.status = json[MikerNetCore.statusKey].intValue
        self.data = json[MikerNetCore.dataKey]
    }
}

才可以配合 SwiftyJSONAccelerator 该库方便直接解析成 model 对象

安装

MikerNetCore 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile

pod "MikerNetCore"

作者

seongbrave, [email protected]