API 中的分页是否应为零索引?
Should paging be zero indexed within an API?
在实现带有分页参数的 Rest API 时,分页应该从零索引还是从 1 开始。参数将是 Page 和 PageSize。
对我来说,从 1 开始比较合理,因为我们讨论的是页数
没有标准。环顾四周:有成千上万的 API 使用不同的方法。
我知道的大多数 API 都使用以下方法之一进行分页:
offset
和 limit
或
page
和 size
两者都可以被 0
或 1
索引。哪个更好?这取决于你。
只需选择适合您需要的那个,然后正确记录它。
此外,您可以在响应有效负载中提供一些 link 以使页面之间的导航更容易。
例如,假设您正在从第 2 页读取数据。因此,为上一页(第 1 页)和下一页(第 3 页)提供 link:
{
"data": [
...
],
"paging": {
"previous": "http://api.example.com/foo?page=1&size=10",
"next": "http://api.example.com/foo?page=3&size=10"
}
}
记住,永远做一个API你会喜欢用的。
在实现带有分页参数的 Rest API 时,分页应该从零索引还是从 1 开始。参数将是 Page 和 PageSize。
对我来说,从 1 开始比较合理,因为我们讨论的是页数
没有标准。环顾四周:有成千上万的 API 使用不同的方法。
我知道的大多数 API 都使用以下方法之一进行分页:
offset
和limit
或page
和size
两者都可以被 0
或 1
索引。哪个更好?这取决于你。
只需选择适合您需要的那个,然后正确记录它。
此外,您可以在响应有效负载中提供一些 link 以使页面之间的导航更容易。
例如,假设您正在从第 2 页读取数据。因此,为上一页(第 1 页)和下一页(第 3 页)提供 link:
{
"data": [
...
],
"paging": {
"previous": "http://api.example.com/foo?page=1&size=10",
"next": "http://api.example.com/foo?page=3&size=10"
}
}
记住,永远做一个API你会喜欢用的。