小编pd9*_*d95的帖子

什么组合运算符/方法可用于加载“分页 API”的所有页面?

我正在使用一个 Web API,它提供的结果达到给定的限制(pageSize请求的参数)。如果结果数量超过此限制,则响应消息会预先填充一个 URL,可以向该 URL 发出后续请求以获取更多结果。如果有更多结果,则再次以相同方式指示。

我的目的是一次获取所有结果。


目前我有类似以下的请求和响应结构:

// Request structure
struct TvShowsSearchRequest {
    let q: String
    let pageSize: Int?
}

// Response structure
struct TvShowsSearchResponse: Decodable {
    let next: String?
    let total : Int
    let searchTerm : String
    let searchResultListShow: [SearchResult]?
}
Run Code Online (Sandbox Code Playgroud)

使用完成处理程序解决“旧式”问题时,我必须编写一个处理程序,它使用响应的 URL 触发“处理更多”请求:

func handleResponse(request: TvShowsSearchRequest, result: Result<TvShowsSearchResponse, Error>) -> Void {
    switch result {
    case .failure(let error):
        fatalError(error.localizedDescription)
    case .success(let value):
        print("> Total number of shows matching the query: \(value.total)")
        print("> Number …
Run Code Online (Sandbox Code Playgroud)

ios swift combine

5
推荐指数
1
解决办法
1280
查看次数

标签 统计

combine ×1

ios ×1

swift ×1