Skip to content

hatuyuki4/GarageClientSwift

 
 

Repository files navigation

GarageClientSwift

Swift client library for the Garage application API

Requirements

  • Swift 3
  • Mac OS 10.10+
  • iOS 8.0+
  • watchOS 2.0+
  • tvOS 9.0+

Installation

Carthage

  1. Add github "slightair/GarageClientSwift" ~> 2.0 to Cartfile
  2. Run carthage update

Usage

1. Define Garage resource model

struct User: Decodable {
    let id: Int
    let name: String
    let email: String

    static func decode(_ e: Extractor) throws -> User {
        return try User(
            id: e <| "id",
            name: e <| "name",
            email: e <| "email"
        )
    }
}

2. Define Garage request

struct GetUsersRequest: GarageRequest {
    typealias Resource = [User]

    var method: HTTPMethod {
        return .get
    }

    var path: String {
        return "/users"
    }

    var queryParameters: [String: Any]? {
        return [
            "per_page": 1,
            "page": 2,
        ]
    }
}

3. Define Garage configuration

struct Configuration: GarageConfiguration {
    let endpoint: URL
    let accessToken: String
}

let configuration = Configuration(
    endpoint: URL(string: "http://localhost:3000")!,
    accessToken: "YOUR ACCESS TOKEN"
)

4. Send request

let garageClient = GarageClient(configuration: configuration)
garageClient.sendRequest(GetUsersRequest()) { result in
    switch result {
    case .success(let response):
        debugPrint(response)

        let users = response.resource
        debugPrint(users)
    case .failure(let error):
        debugPrint(error)
    }
}

License

GarageClientSwift is available under the MIT license. See the LICENSE file for more info.

About

Swift client library for the Garage application API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 99.3%
  • Objective-C 0.7%