Swiftpack.co - Package - halcyonmobile/RestBird

RestBird 🦉

Codacy Badge Build Status codecov

Lightweight, stateless REST network manager over the Codable protocol.

About

Requirements

  • iOS 9.0+ / macOS 10.11+
  • XCode 10.0+
  • Swift 4.2+

Features

  • [x] Codable support.
  • [x] Built-in Alamofire driver.
  • [x] Built-in URLSession driver.
  • [x] PromiseKit wrapper.

Installation Instructions

Swift Package Manager

Add RestBird as a dependency to your project.

.Package(url: "https://github.com/halcyonmobile/RestBird.git", majorVersion: 0, minorVersion: 3)

You can use RestBird and implement your own session handling or use one of the built-in drivers implemented by RestBird (Alamofire and URLSession).

// Use RestBird without any driver
targets: [
    Target(name: "YourTarget", dependencies: ["RestBird"])
]

// Use the URLSession Driver
targets: [
    Target(name: "YourTarget", dependencies: [
        .product(name: "RestBird-URLSession", package: "RestBird")
    ])
]

// Use the Alamofire Driver
targets: [
    Target(name: "YourTarget", dependencies: [
        .product(name: "RestBird-Alamofire", package: "RestBird")
    ])
]

CocoaPods

# use RestBird without any driver
pod 'RestBird'

# use RestBird with Alamofire driver
pod 'RestBird/Alamofire'

# use RestBird with URLSession driver
pod 'RestBird/URLSession'

You can also try it out by running

pod try RestBird

Carthage

github "halcyonmobile/RestBird"

Setup

Steps for setting up the project for development:

  • Clone the repo
  • Generate Xcode project by executing swift package generate-xcodeproj
  • Open project

Usage

First you need to create your NetworkClientConfiguration configuration with your custom or one of the provided session manager drivers. We're going to use the AlamofireSessionManager.

struct MainAPIConfiguration: NetworkClientConfiguration {
    let baseUrl = "https://api.example.com"
    let sessionManager = AlamofireSessionManager()
}

Now we can pass this configuration to the network client.

let networkClient = NetworkClient(configuration: MainAPIConfiguration())

Convenience

You can find convenience wrappers for RestBird which are not distributed through the package. This includes a PromiseKit wrapper.

Check out here.

License

RestBird is released under the MIT license. See LICENSE for details.

Github

link
Stars: 10
Help us keep the lights on

Dependencies

Used By

Total: 0

Releases

v0.3.0 - Nov 10, 2018

  • Add JSON coding customization
  • Implement URL session manager

v0.2.1 - Oct 21, 2018

  • Fix ambiguity when calling execute(request:completion:)
  • Map header fields to the request inside the Alamofire driver

v0.2.0 - Oct 18, 2018

With this version, the interface of RestBird became friendlier.

  • Expose necessary attributes and functions for a usable Framework.
  • Implemented Alamofire driver for data and upload tasks.
  • Separate the framework into a core and multiple driver modules.

v0.1.0 - Oct 8, 2018

• Request object • Abstract network manager • Built-in Alamofire support