使用/ api / v1 / account / names我请求我的数据库中的所有名称,但如果我需要知道记录的数量(名称)怎么办? (用于传呼)
您建议使用以下REST-Urls的哪种方法:
api / v1 / account / names的结果和api / v1 / account / names#的结果#whatever# 是不同的。
THX
答案 0 :(得分:1)
对于分页,您不应该执行计数查询,而是一次查询所有内容:计数和页面记录。
在你的数据库上,发出像(PGSQL一样的语法 - 获取25条记录的第3页,其中第4列的值是'x')
Select
row1, row2, row3, count(*) over()
from MyShema.MyTable
where row4 = 'x' order by row1 asc
offset 75 limit 25;
结果集将包含第4列(每行)的总计数。
然后构建一个看起来像
的Json响应{
totalCount: 1280, -- value in row 1 column 4
offset: 75,
rows: [
[row1_1, row1_2,row1_3],
[row2_1, row2_2,row2_3],
...
[row25_1, row25_2,row25_3],
]
}
其中包含查询时间,偏移量和页面内容的总行数。
此响应可以通过分页网格轻松处理。
答案 1 :(得分:1)
我认为最好的方法是将这两个请求合二为一,然后在响应标题中返回条目数,以确保在同一时间检索条目及其计数。
答案 2 :(得分:0)
如果GET /api/v1/account/names
返回名称列表:
{
"names": ["Foo", "Bar", "Baz"]
}
那么为什么不在这个列表中添加count
元素:
{
"names": ["Foo", "Bar", "Baz"],
"count": 3
}
您可以将此子资源请求为GET /api/v1/account/names/count
:
{
"count": 3
}