RxSwift extensions for Hyperdrive, the generic Swift Web API client
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Pods
RxHyperdrive.xcodeproj
RxHyperdrive.xcworkspace
RxHyperdrive
RxHyperdriveTests
.travis.yml
LICENSE
Podfile
Podfile.lock
README.md
RxHyperdrive.podspec

README.md

Hyperdrive Logo

RxHyperdrive

Build Status

RxSwift extensions for Hyperdrive, the generic Swift Web API client.

Usage

let hyperdrive = Hyperdrive()

RxHyperdrive adds extensions to Hyperdrive to provide an enter and request function that returns an observable.

hyperdrive.enter("https://polls.apiblueprint.org/")
  .subscribeNext { representor in
    // We've successfully connected and we have a representor
    // representing the APIs "root" resource.

    print(representor)
  }

Once we've got a representor representing the root resource, we can follow any available transitions such as a transition to the questions collection resource.

let questions = representor.transitions["questions"]

hyperdrive.request(questions)
  .subscribeNext { representor in
    print(representor)
  }

Using flatMap we can chain both of these operations together producing an observer of the questions resource.

hyperdrive.enter("https://polls.apiblueprint.org/")
  .flatMap { representor in
    hyperdrive.request(representor.transitions["questions"])
  }
  .subscribeNext { representor in
    print(representor)
  }

Installation

CocoaPods is the recommended way to add RxHyperdrive to your project.

pod 'RxHyperdrive'

License

RxHyperdrive is released under the MIT license. See LICENSE.