Episode #194

Modeling API Endpoints

6 minutes
Published on October 29, 2015

This video is only available to subscribers. Get access to this video and 572 others.

In this episode we talk about modeling API Endpoints as first class types, rather than relying on strings and string interpolation scattered across your application. For this we'll leverage Swift enums with associated values.

Episode Links

let baseURL = NSURL(string: "http://httpbin.org")!

enum Endpoint {
    case UserAgent
    case Links(Int)

    func url() -> NSURL {
        switch self {
        case .UserAgent:
            return baseURL.URLByAppendingPathComponent("/user-agent")
        case .Links(let n):
            return baseURL.URLByAppendingPathComponent("/links/\(n)")
        }
    }
}

request(Endpoint.UserAgent.url())
request(Endpoint.Links(5).url())