Creating the client
Now that the utilities are complete, the GitHub client API can be created. Once that is complete, it can be integrated with the user interface.
Talking to the GitHub API
A Swift class will be created to talk to the GitHub API. This will connect to the root endpoint host and download the JSON for the service URLs so that subsequent network connections can be made.
To ensure that network requests are not repeated, an NSCache
will be used to save the responses. This will automatically be emptied when the application is under memory pressure:
import Foundation class GitHubAPI { let base:NSURL let services:[String:String] let cache = NSCache() class func connect() -> GitHubAPI? { return connect("https://api.github.com") } class func connect(url:String) -> GitHubAPI? { if let nsurl = NSURL(string:url) { return connect(nsurl) } else { return nil } } class func connect(url:NSURL) -> GitHubAPI? { if let data = NSData(contentsOfURL...