SetlistFMKit - 用于 Swift 的 Setlist.fm API 封装

一个围绕 Setlist.fm API 的简单 Swift 封装。Setlist.fm 是一个大型互联网数据库,其中包含由社区提供的详细现场音乐会歌单(演奏的歌曲列表),涵盖历史上任何艺术家。

此封装旨在帮助您将 Setlist.fm 的数据集成到您的 iOS 或 macOS 应用程序中,而无需了解 API 的各种特性。 使用 URLSession 的基本内置网络实现处理对 15 个可用端点的 RESTful GET 请求,并且相应的函数签名允许对这些端点进行完全参数化的请求。 调用 15 个封装函数中的任何一个都会异步返回一个反序列化的对象,该对象对应于幕后从关联端点返回的 JSON。 所有封装函数都由单元测试完全覆盖,这些单元测试利用来自 API 的示例响应。 这些单元测试验证了此封装的正确性,但也可以作为 API 和封装使用的参考。

尽管此封装的默认网络实现使用 URLSession.shared,但您可以指定自己的网络实现供此封装使用,只要您的网络实现符合封装的 URLSessionProtocol

要求

用法

要使用此 API 封装,您必须生成自己的 Setlist.fm API 密钥。 生成密钥是免费的,并且可以快速在此处完成:api.setlist.fm

生成密钥后,您就可以开始了!

import SetlistFMKit

let wrapper = SetlistFMWrapper(apiKey: "your-api-key")
wrapper.searchSetlists(artistName: "Radiohead") { result in
    switch result {
    case .success(let setlistResponse):
        let matchingSetlists = setlistResponse.setlist
        print(matchingSetlists)
    case .failure(let error):
        print(error.code)
        print(error.message)
    }
}

语言

此 API 封装能够返回多达 8 种语言的结果,因为这些是 Setlist.FM API 当前支持的语言

要获取任何这些语言的结果,请在封装的初始化程序中传入其关联的枚举情况。 例如

let wrapper = SetlistFMWrapper(apiKey: "your-api-key", language: .portugese)

文档

Setlist.fm API 的完整文档可在此处获得:https://api.setlist.fm/docs/1.0/ui/index.html

此封装还具有从上述链接中提供的文档移植的文档注释,因此所有方法和属性都用有用的描述性句子注释,这些句子描述了它们的用途和用法。

其他功能

目前没有其他功能,但计划向此框架添加以下增强功能,使其更像是一个超级封装