Data & Customization

Authorizing Data Source Requests

When integrating one of your own Web APIs with Rover experiences as a Data Source, it is often the case that you need to pass an API key along. The Rover SDK gives you a means to modify any outgoing Data Source HTTP request being issued by the Rover SDK for your API.


Call Rover.shared.authorize() and specify the hostname of your Data Source API (you can additionally glob multiple subdomains using asterisk * for wildcards), and then give a closure that receives a URLRequest value type that you can modify as needed.

For example, the following sample code for iOS and Android matches both api.example.com and stats.example.com:

iOS

Rover.shared.authorize(pattern: "*.apis.myapp.com") { urlRequest in
    urlRequest.setValue("mytoken", forHTTPHeaderField: "Authorization")
}

Android

Rover.shared.authorize("*.apis.myapp.com") { urlRequest ->
    urlRequest.headers["Authorization"] = "mytoken"
}

URLRequest on Android

On iOS we use the URLRequest type provided by the Cocoa framework, but on Android we have our own value type in a similar shape. Its task is to describe an outbound request, and offers headers and url properties that can be mutated.

Previous
Location