我想在 Spring 中创建一个符合 REST 的端点。端点应该允许分页。
请求很简单,GET到url/resource?page=1&pageSize=20。 问题在于请求。
我发现了两种返回数据的主要方法:
- 返回一个自定义对象,其中包含:
{
"page": 1,
"pageSize": 20,
"content": [
{...},
{...}
...
]
}
此方法的问题在于它不再返回资源,而是返回资源的包装器。
- 当您从后端给出响应时设置 X-Total-Count 自定义 header :
[
{...},
{...}
...
]
这解决了资源问题,但它使端点更难使用,这是违反直觉的,因为它也需要额外的工作来实现。
我想知道哪些标准被更广泛地使用,为什么?对此的"new"方法是什么?我应该远离什么?有没有办法同时满足这两种需求?
提前致谢!
最佳答案
我在使用的 API 中看到的最常见的做法是使用对象包装器的第一个示例:
{
"page": 1,
"pageSize": 20,
"content": [
{...},
{...}
...
]
}
通常,此对象包装器是通过对 GET/resources
端点的任何调用来实现的。另一方面,当用户调用GET资源/{resourceId}
端点时,没有对象包装器。
这只是我对其他 API 使用情况的看法,但我已经编写了近 100 个不同的 API 集成,因此我已经看到了相当多的集成。
关于java - 响应休息分页请求的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58169088/