michaelnisi/fanboy-kit
Search iTunes with FanboyKit. This Swift package provides a client for [fanboy-http](https://github.com/michaelnisi/fanboy-http), a caching proxy for the [iTunes Search API](https://affiliate.itunes.apple.com/resources/documentation/itunes-store-web-service-search-api/). FanboyKi
Example
Querying for suggestions matching the term "crook" limiting the result to 10.
import Foundation
import Patron
import FanboyKit
let url = URL(string: "https://your.endpoint")!
let s = URLSession(configuration: .default)
let p = Patron(URL: url, session: s)
let svc = Fanboy(client: p)
try! svc.suggestions(matching: "crook", limit: 10) { result, error in
print(error ?? result)
}Please refer to fanboy-http for details.
Types
FanboyError
enum FanboyError: Error {
case unexpectedResult(result: AnyObject?)
case cancelledByUser
case invalidTerm
}FanboyService
protocol FanboyService {
var client: JSONService { get }
@discardableResult func version(
completionHandler cb: @escaping (_ version: String?, Error?) -> Void
) -> URLSessionTask
@discardableResult func search(
term: String,
completionHandler cb: @escaping (
_ podcasts: [[String : AnyObject]]?, _ error: Error?) -> Void
) throws -> URLSessionTask
@discardableResult func lookup(
guids: [String],
completionHandler cb: @escaping (
_ podcasts: [[String : AnyObject]]?, _ error: Error?) -> Void
) -> URLSessionTask
@discardableResult func suggestions(
matching: String,
limit: Int,
completionHandler cb: @escaping (
_ terms: [String]?, _ error: Error?) -> Void
) throws -> URLSessionTask
}client
var client: JSONService { get }The client property of the FanboyService object gives access to the underlying Patron client, providing hostname and status of the remote service.
Test
With fanboy-http running, do:
$ swift testInstall
📦 Add https://github.com/michaelnisi/fanboy-kit to your package manifest.
License
Package Metadata
Repository: michaelnisi/fanboy-kit
Default branch: master
README: README.md