使用 FanboyKit 搜索 iTunes。这个 Swift 包为 fanboy-http 提供了一个客户端,fanboy-http 它是 iTunes Search API 的一个缓存代理。FanboyKit 被用在 Podest 播客应用中。
查询与建议,匹配术语 "crook"
,并将结果限制为 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)
}
请参考 fanboy-http 以获取详细信息。
enum FanboyError: Error {
case unexpectedResult(result: AnyObject?)
case cancelledByUser
case invalidTerm
}
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
}
var client: JSONService { get }
FanboyService
对象的 client
属性可以访问底层的 Patron 客户端,从而提供远程服务的主机名和状态。
在 fanboy-http 运行的情况下,进行以下操作:
$ swift test
📦 将 https://github.com/michaelnisi/fanboy-kit
添加到你的包清单中。