项目作者: quangnghiadev

项目描述 :
RequestKits is a framework for network request (API Request, Upload/Download Task)
高级语言: Swift
项目地址: git://github.com/quangnghiadev/RequestKits.git
创建时间: 2020-08-22T10:28:17Z
项目社区:https://github.com/quangnghiadev/RequestKits

开源协议:MIT License

下载




Build Status
SPM compatible
Swift
Xcode
MIT

RequestKits

RequestKits is a framework for network request (API Request, Upload/Download Task)

Requirements

  • iOS 11.0+
  • Swift 5.0+

Dependency

  • RxSwift
  • Alamofire

Installation

Swift Package Manager

You can use The Swift Package Manager to install RequestKits by adding https://github.com/quangnghiadev/RequestKits.git to Swift Package of your XCode project

Usage

Define your Network instance

  1. private let network = Network(config: NetworkConfig())

Make a request with:

  • Pure
  1. var request = URLRequest(url: URL(string: "https://httpbin.org/get")!)
  2. request.method = .get
  3. network.request(request, validationType: .successCodes) { data, error in
  4. print(data as Any)
  5. print(error as Any)
  6. }
  • Requestable
  1. struct GetAllPostsRequest: Requestable {
  2. var baseURL: URL {
  3. return URL(string: "https://httpbin.org/")!
  4. }
  5. var path: String {
  6. return "get"
  7. }
  8. var method: HTTPMethod {
  9. return .get
  10. }
  11. var task: Task {
  12. .requestPlain
  13. }
  14. }
  15. network.request(requestable: GetAllPostsRequest()) { data, error in
  16. print(data as Any)
  17. print(error as Any)
  18. }
  • RxSwift and Requestable
  1. let request: Observable<EmptyEntity> = network.rxRequest(requestable: GetAllPostsRequest())
  2. request.subscribe(onNext: { response in
  3. print(response)
  4. }).disposed(by: disposeBag)

Pluggin

RequestAdapter

EventMonitor

License

  • RequestKits is using Alamofire. See LICENSE for more information.
  • RequestKits is using RxSwift. See LICENSE for more information.
  • RequestKits is using source code from Moya. See LICENSE for more information.
  • RequestKits is released under the MIT license. See LICENSE for more information.