Skip to content

RxSwift extensions for Hyperdrive, the generic Swift Web API client

License

Notifications You must be signed in to change notification settings

kylef-archive/RxHyperdrive

Repository files navigation

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.

About

RxSwift extensions for Hyperdrive, the generic Swift Web API client

Resources

License

Stars

Watchers

Forks

Packages

No packages published