Swiftpack.co - DouKing/HTTPClient as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by DouKing.
DouKing/HTTPClient 0.1.0
A POP HTTP Client for iOS using Alamofire
⭐️ 0
🕓 1 year ago
iOS macOS watchOS tvOS
.package(url: "https://github.com/DouKing/HTTPClient.git", from: "0.1.0")

HTTPClient

A HTTP Client for iOS using Alamofire.

Usage

Config Client

extension HTTPClient {
  var defaultHttpHeaders: HTTPHeaders {
    var headers = HTTPHeaders([])
    if let token = UserInfoManager.token {
      headers.add(name: "Authori-zation", value: token)
    }
    return headers
  }

  var defaultParameters: Parameters { return [:] }
  var parameterEncoding: ParameterEncoding { return JSONEncoding.default }
  
  // {"code": 0, "message": "SUCCESS", "data": {}}
  var decodePath: String? {
    return "data"
  }
}

Define your own client

struct APIManager: HTTPClient {
  var baseURL: URL {
    return URL(string: "https://xxxxx/")!
  }
}

Create your request

struct YourRequest {
  
}

extension YourRequest: HTTPRequest {
  typealias DecodableType = YourModel
  
  var path: String { "web/home/list" }
  
  var parameterEncoding: ParameterEncoding? { URLEncoding.default }
  
  var parameters: Parameters? {
    ["userId": "xxx"]
  }
}

Start your request

let request1 = YourRequest()
let request2 = YourRequest()

async let response1 = APIManager().send(request1)
  .serializingParsable(of: YourModel.self)
  .response

async let response2 = APIManager().send(request2)
  .serializingParsable(of: YourModel.self)
  .response

let responses = await [response1, response2]

Installation

  • Using Swift Package Manager

    import PackageDescription
    
    let package = Package(
      name: "MyAwesomeApp",
      dependencies: [
        .package(url: "https://github.com/douking/HTTPClient", from: "0.1.0"),
      ]
    )
    

LICENES

See LICENES file for more infomation.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics