CreatuNetwork
示例
要运行示例项目,请克隆仓库,然后首先从示例目录运行pod install
。
要求
- Swift 4或更高版本
- 目标IOS 10或更高版本
链接库
- Alamofire (4.7.0)
- KeychainSwift (10.0.0)
- Moya (11.0.1)
- ReachabilitySwift (4.1.0)
- Result (3.2.4)
- RxCocoa (4.1.2)
- RxSwift (4.1.2)
安装
CreatuNetwork 可以通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中
pod 'CreatuNetwork'
API 模型
在您的 API 中添加扩展 ApiTargetType
import Foundation
import Moya
import CreatuNetwork
enum UserApi {
case login([String: Any])
case logout([String: Any])
case register([String: Any])
}
extension UserApi: ApiTargetType {
var checkTokenValidity: Bool {
return false
}
var baseURL: URL {
return URL(string: "{{ YOUR-BASE-URL-HERE }}")!
}
var path: String {
switch self {
case .register:
return "{{ REGISTER }}"
case .login:
return "{{ LOGIN}}"
case .logout:
return "{{ LOGOUT }}"
}
}
var method: Moya.Method {
switch self {
case .register,
.login,
.logout:
return .post
}
}
var sampleData: Data {
return Data()
}
var task: Task {
switch self {
case .register(let parameters),
.login(let parameters),
.logout(let parameters):
return .requestParameters(parameters: parameters, encoding: URLEncoding.default)
}
}
var headers: [String: String]? {
return ["Accept": "application/json"]
}
var authTokenType: AuthHeaderType {
switch self {
case .login:
return .basic
case .register,
.logout:
return .bearer
}
}
}
请求
- 请求
Network.request(UserApi.login(["username": "{{ USERNAME }}", "password": "{{ PASSWORD }}"])).subscribe(onNext: {(response) in
debugPrint(response)
}, onError: { (error) in
debugPrint(error)
}).disposed(by: bag)
- 网络检查
Network.available() -> Bool // true if netowk available
响应
- 响应模型
var shouldTokenRefresh = false // true if your token out of date and you need to refresh token
var response: Any? // your response data
var message: String? // error message
var success = true // true if your request successfully completed
基于令牌的生命周期
- 如果自定义授权头
Authorize.customHeader {get set}
- 获取访问令牌
Authorize.accessToken {get}
- 获取刷新令牌
Authorize.refreshToken {get}
- 获取授权模型
Authorize.authorizeModel { get }
- 使用客户端 ID 和客户端密钥设置访问令牌
Authorize.setAccessToken(_ clientId: String, clientSecret: String) -> Bool
- 使用令牌字符串设置 access token
Authorize.setAccessToken(_ token: String) -> Bool
- 清除所有保存的授权数据
Authorize.clearSavedData() -> Bool
- 更新授权模型
Authorize.updateAuthorize(_ authorize: AuthorizeModel) -> Bool
- 使用 JSON 更新授权模型
Authorize.updateAuthorize(_ authorize: [String: Any]) -> Bool
作者
mohansinghthagunna, [email protected]
许可证
CreatuNetwork 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。