为了响应一些返回分页数据数量的请求,我遇到了两个键,它们指的是指向下一页的链接和当前页面的上一页。
{
"data": {
"next": "http://localhost/api/contents/posts/?page=3",
"count": 132,
"previous": "http://localhost/api/contents/posts/?page=1",
"items": []
}
}
在一些代码中,开发人员使用这些 url 来访问下一个和上一个数据。
但在我的情况下,我在其方法调用中生成每个请求的 url,并在请求方法中附加基本 url。这是我的代码:
常量类:
struct Urls {
static let baseUrl = "http://localhost/api"
// MARK:- Content Api
struct Post {
static let baseContentURL = "/contents"
static let posts = "/posts"
}
}
发布请求生成器类:
func postListByPage(_ pageNumber: String, completion: @escaping(_ inner : () throws -> Post) -> Void) {
let relativeUrl = Urls.Post.baseContentURL + Urls.Post.posts + "/?page=" + pageNumber
// get request code
}
API调用类:
func getRequest(relativeUrl: String, tryCount: Int = 1, completion: @escaping (_ inner: () throws -> Data) -> Void) {
let url = Urls.baseUrl + relativeUrl
//send request by URLSession
}
当我能够动态处理这些请求时,我不确定下一个 url 的确切用法是什么,而且我认为使用此字段会破坏我的代码中 API 调用中的所有层规则。
我的问题:
- 这些字段的确切用途是什么?
- 如果使用这些字段更好,我该如何使用当前结构来做到这一点?