Swift- JSON 超过一页的请求

Swift- JSON Requests with more than one page

我正在使用 Alamofire 和 SwiftyJSON 访问 Youtube API 并获取频道的播放列表数。我的问题是 Youtube returns 每页(或请求)只有 5 个项目,我不知道如何访问其余的!

func getPlaylists() {
    Alamofire.request(.GET, playlistURL).validate().responseJSON { response in
        switch response.result {
        case .Success:
            if let value = response.result.value {
                let json = JSON(value)
                print(json["items"].count) //Always returns 5
            }
        case .Failure(let error):
            print(error)
        }
    }
}

谁能告诉我如何访问下一组结果?

您可以在 API 文档中找到答案,可能在此处 YouTube Data API

注意:在您的请求中,您可以使用查询参数设置每页的最大项目数:maxResults。这可以是 5 到 50,默认等于 5。

当您收到响应时,服务器 returns 一个包含 JSON 值 "nextToken": <string> 的 JSON。在您的下一个请求中使用此值,您可以在其中插入查询参数 pageToken=<string>.

您可以修改 getPlaylists 方法,使其采用参数 nextToken: String。最初使用空字符串或更好的可选初始化为 nil.

调用此方法

在您的完成处理程序中,从 JSON 响应中检索 "nextToken" 值。如果存在,请使用此参数调用您的方法。否则,您将获得所有页面。

您的方法 getPlaylists 还应该有一个完成处理程序。检索完所有页面后调用完成处理程序。