FanboyKit

使用 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 以获取详细信息。

类型

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 }

FanboyService 对象的 client 属性可以访问底层的 Patron 客户端,从而提供远程服务的主机名和状态。

测试

fanboy-http 运行的情况下,进行以下操作:

$ swift test

安装

📦 将 https://github.com/michaelnisi/fanboy-kit 添加到你的包清单中。

许可证

MIT 许可证