正确响应剩余页面请求

时间:2019-09-30 13:37:16

标签: java spring rest spring-boot pagination

我想在Spring中创建一个符合REST的端点。该端点应该允许分页。

请求非常简单,获取到url / resource?page = 1&pageSize = 20。 问题是请求。

我发现了两种返回数据的大方法:

  1. 返回包含以下内容的自定义对象:
{
    "page": 1,
    "pageSize": 20,
    "content": [
         {...},
         {...}
         ...
    ]
}

此方法的问题在于它不再返回资源,而是返回对该资源的包装。

  1. 从后端给出响应时,设置X-Total-Count自定义标头:
[
   {...},
   {...}
   ...
]

这解决了资源问题,但是使端点更难使用,这是违反直觉的,因为它还需要额外的工作才能实现。

我想知道,更广泛使用哪些标准?为什么?什么是“新”方法?我应该远离什么?有办法满足这两种需求吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我在API中使用的最常见的做法是使用对象包装的第一个示例:

{
    "page": 1,
    "pageSize": 20,
    "content": [
         {...},
         {...}
         ...
    ]
}

通常,此对象包装器是通过对GET /resources端点的任何调用来实现的。另一方面,当用户调用GET resource/{resourceId}端点时,则没有对象包装。

这只是我对其他API用途的看法,但是我已经写了近100种不同的API集成,所以我看到了很多。