Swift Package Index


A Swift wrapper for the Stack Exchange API


  • The latest stable release is 0.6.0. Released 5 months ago.
  • The last commit to master was 5 months ago.

Swift Version Compatibility

  • 0.6.0 and master
    5.3
    5.2
    5.1
    5.0
    4.2
Full build results

Platform Compatibility

  • 0.6.0 and master
    iOS
    macOS(Intel)
    macOS(ARM)
    Linux
    tvOS
    watchOS
Full build results

Build Status

About SwiftStack

SwiftStack is a wrapper for the Stack Exchange API written in Swift.

How to use

To use SwiftStack via Swift Package Manager in your project, add it as dependency in your Package.swift.

let package = Package(
    name: "MyProject",
    dependencies: [
        .Package(url: "https://github.com/NobodyNada/SwiftStack.git", versions: Version(0,0,0)..<Version(.max, .max, .max))
    ]
)

You can import the module with: import SwiftStack

Create a basic request (/sites)

First of all, you need an instance of APIClient. From this instance, you will call all the requests to the Stack Exchange API.

let client = APIClient()

Asynchronous request

Asynchronous requests have completion handlers and will all look like this:

client.fetchSites() {
    response, error in
}

Response will always be of type APIResponse<T: JsonConvertible>. In this example, T is of type Site.

Of course, the functions can be more complex, when you want to pass parameters.

Synchronous request

Synchronous requests return the result as APIResponse<T: JsonConvertible> and throw errors. In this example, T is of type Site.

do {
    let response = try client.fetchSites()
} catch {
    print("An error occurred: \(error)")
}

Of course, the functions can be more complex, when you want to pass parameters.

Returned objects

Every object that contains data of the Stack Exchange API (for example User, Question,...) has properties with the exact same names as returned by the API, even when those names don't follow Swift conventions.

Documentation

The documentation can be found here: http://swiftstack.sobotics.org