Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用REST请求表中记录数的最佳方法_Java_Rest - Fatal编程技术网

Java 使用REST请求表中记录数的最佳方法

Java 使用REST请求表中记录数的最佳方法,java,rest,Java,Rest,使用/api/v1/account/names,我请求数据库中的所有名称,但如果我需要知道记录数(名称),该怎么办?(用于寻呼) 您建议使用以下REST URL中的哪种方法: /api/v1/帐户/名称/计数 /api/v1/account/names?计数-(不适用于Jersey) /api/v1/账户/名称/记录 你的建议 api/v1/account/names的结果和api/v1/account/names的结果# 这是不同的 thx对于分页,您不应该执行计数查询,而应该同时查询所有内容

使用/api/v1/account/names,我请求数据库中的所有名称,但如果我需要知道记录数(名称),该怎么办?(用于寻呼)

您建议使用以下REST URL中的哪种方法:

  • /api/v1/帐户/名称/计数
  • /api/v1/account/names?计数-(不适用于Jersey)
  • /api/v1/账户/名称/记录
  • 你的建议
  • api/v1/account/names的结果和api/v1/account/names的结果# 这是不同的


    thx

    对于分页,您不应该执行计数查询,而应该同时查询所有内容:计数和页面记录

    在数据库上,发出类似(类似于PGSQL的语法-获取第3页共25条记录,其中第4列的值为“x”)的命令

    结果集将包含第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],
       ]
    }
    
    其中包含总行数、查询时间、偏移量和页面内容


    此响应可由分页网格轻松处理。

    如果
    GET/api/v1/account/names
    返回名称列表:

    {
      "names": ["Foo", "Bar", "Baz"]
    }
    
    那么为什么不将
    元素计数到该列表中呢

    {
      "names": ["Foo", "Bar", "Baz"],
      "count": 3
    }
    
    您可以通过
    GET/api/v1/account/names/count
    请求此子资源:

    {
      "count": 3
    }
    

    我认为最好的方法是将这两个请求合并在一个请求中,并返回条目数,例如,在响应的标题中,以确保同时检索条目及其计数。

    如果计数在计数请求和数据请求之间发生变化,该怎么办?也许这是另一种方法-完全避免此调用。这可能是最好的。我太执着于要求记录的数量,以至于忽略了这个问题。你能写一个答案让我给你打分吗?对不起,我接受了BGRs的答案-答案是一样的,但更详细一点。。。
    {
      "count": 3
    }