如何确保分页 REST API 中的数据完整性?

2024-02-24

我目前正在研究 REST API。 API返回的资源预计是来自数据库的海量数据(数据库中有数千万行)。分页是必须的,以避免将数据写入 HTTP 响应时消耗大量内存。

当客户端请求之间数据库中存在删除/添加行时,如何确保数据完整性?

例如:

page 1: [ John, Mary, Harry, David, Joe ]
page 2: [ Mike, Don, Alex ]

在客户端请求第1页并将其本地存储在(文件/内存)中之后,在请求第2页之前,数据更改为:

page 1: [ John, Mary, Harry, David, **Mike** ]
page 2: [ Don, Alex, **Terry** ]

真正的 RESTful(因此服务器端无状态)答案是:

  • 询问前五条记录(最后一条是“Joe”),
  • 然后要求比“Joe”优越的五个记录[1],
  • 等等。

通过此策略,您将在第 2 页中看到“Mike”和“Terry”。

[1] 它们必须有排序顺序(按字母顺序或其他顺序)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何确保分页 REST API 中的数据完整性? 的相关文章

  • AzureAD JWT 令牌受众声明前缀使 JWT 令牌无效

    我正在使用 adal node npm 包通过 AzureAD 进行身份验证 一切正常 我得到了一个令牌 但是 在检查 JWT 令牌中的 aud 声明时 我看到受众 GUID 的前缀为 spn 我认为当我尝试在现有的 Web API 上使用
  • 在基于 RESTful 的应用程序中管理状态

    我们正在评估用于基于 Web 的应用程序的技术 一些建议是采用基于 RESTful 的服务方法 技术堆栈 1 春天 2 Apache CXF JAX RS 我的问题是 1 如何在请求之间管理状态 例如 用户已经过身份验证 现在他正在发出一系
  • OpenRasta - Scott Littlewoods 基本身份验证工作示例

    我正在测试使用 OpenRasta 作为 ASP NET MVC 的可行替代方案的可行性 但是 我遇到了有关身份验证的绊脚石 让我明确一点 开放式摘要身份验证 不是一个选项在此刻 我读到 Scott Littlewood 为 OpenRas
  • 如果 POST 成功但没有创建任何新内容,我们应该返回什么状态代码?

    我们有一个端点 当您发布创建新版本的资源时 它会返回 201 和新创建的资源的位置 它根据当前版本和发布的版本 使用类似 semver 的规则集 的比较来确定新版本号 如果您发布的版本与现有版本相同 则不会更新版本号 在这种情况下我们应该返
  • @NotNull 注释未检查 Jersey REST 资源中的空查询参数

    我正在尝试使用 javax validation validation api 进行验证 QueryParam参数 我已按照以下步骤操作 添加依赖项
  • 在 AtTask PUT 请求中发送多个更新

    我想知道 AtTask 的 API 中是否有一种方法可以在单个 URL 请求中发布多个更新 例如 我需要更新 1 000 条记录的 extRefID 我是否可以对 API 进行 1 000 次调用 就开销而言成本高昂 或者我可以使用包含如下
  • PHP - Twitter API (OAuth) 分页无法正常工作

    我已经集成了 Twitter API Twitter OAuth 来获取特定公司帐户的最新提要 下面是我到目前为止所做的代码 https tomelliott com php authenticating twitter feed time
  • Flask 无法识别两个 URL 参数

    我正在尝试将两个参数发送到使用 Flask 路由的 URL If I do curl i http 127 0 0 1 5000 api journeys count startStationName Hansard 20Mews 20Sh
  • 在 RESTful WCF 中混合 XML 和 JSON,无需单独的方法

    我有一个 RESTful WCF 服务 可以返回 XML JSON 或 JSONP 具体取决于参数 例如 service svc stuff format xml or service svc stuff format json callb
  • gRPC(HTTP/2) 比使用 HTTP/2 的 REST 更快吗?

    目标是引入一种性能更好的传输和应用层协议latency and 网络吞吐量 目前 该应用程序使用REST with HTTP 1 1并且我们遇到了很高的延迟 我需要解决这个延迟问题并且我愿意使用gRPC HTTP 2 or 休息 HTTP2
  • HATEOAS 与 PUT/POST 链接

    代表 HATEOAS 链接的最佳方式是什么POST PUT PATCH在资源上 这些操作具有有效负载 但我们无法选择在 HATEOAS 链接中表示有效负载 因为它们不是预先确定的并且可能很重 那么仅仅指定终点并指定操作就足够了吗 对于 HA
  • php paypal 服务器端 REST 集成失败

    我无法发布代码 错误等 因为 你需要至少 10 个声誉才能发布 2 个以上的链接 并且所有内容都包含很多链接 只是花了几个小时写了一篇完整详细的帖子 我在这里 和其他地方 读过类似的帖子 但它们没有帮助 我基本上遵循 https devel
  • Jersey 将 Weld 托管 bean 注入 ConstraintValidator

    我已经花了几个小时寻找解决方案来解决我的问题 但我无法让它发挥作用 我想将 Weld 管理的服务注入 ConstraintValidator 中 该 ConstraintValidator 用于验证发布到 JAX RS Rest Servi
  • 除了 GET 和 POST 之外,如何从浏览器向 RESTful 应用程序发送任何内容?

    我没有得到 RESTful 的东西 是的 我知道如何从浏览器向我的应用程序发送 GET 请求 这是通过 URL 链接 a href user someone 并且还可以通过form方法发送POST请求 a
  • XML-RPC 与 REST

    我打算在这里构建一个小型服务器 并想为其创建一个 API 我正在决定什么是更好的并且已经排除了SOAP因为在我看来那件事是一团糟 我只剩下REST and XML RPC 我真的很喜欢XML RPC 它实现起来非常简单 并且足够常规 所有客
  • Spring REST 控制器中带有 RequestBody 的 XML/JSON POST

    我正在使用 Spring 3 0 创建一个 RESTful 网站 我在用ContentNegotiatingViewResolver以及 HTTP 消息转换器 例如MappingJacksonHttpMessageConverter对于 J
  • 如何使用继承来建模 RESTful API?

    我有一个需要通过 RESTful API 公开的对象层次结构 但我不确定我的 URL 应该如何构建以及它们应该返回什么 我找不到任何最佳实践 假设我有从动物继承的狗和猫 我需要对狗和猫进行CRUD操作 我还希望能够对一般动物进行手术 我的第
  • 对不存在的资源进行 GET 的 REST 标准

    资源 user 12345 不存在 假设消费者随机尝试不同的 id 没有授权 任何用户都可以查看任何用户 从更广泛的意义上来说 我的问题是 如果对不存在的资源执行 GET 操作 您应该返回什么 我应该为不存在的 id 返回空用户 还是应该返
  • 在 WCF Web 编程模型中,如何编写具有一组查询字符串参数(即具有相同名称)的操作协定?

    使用 WCF Web 编程模型 可以指定一个操作契约 如下所示 OperationContract WebGet ResponseFormat WebMessageFormat Xml UriTemplate SomeRequest qs1
  • Ruby on Rails REST 设计问题 - 在账户之间转账

    我有一个 Account 类 想要实现转账屏幕以允许用户在 2 个账户之间转账 我将如何实现这种 RESTful 方式 我有标准帐户和休息操作 那很好 但我该如何实现转移呢 通常我只会向帐户控制器和相应的视图添加一个名为 transfer

随机推荐

  • 格式化没有这样的文件或目录

    我试图使用 C 格式实用程序 std format 我尝试编译这个简单的程序 include
  • Cassandra 中分区键、复合键和集群键之间的区别?

    我一直在网上阅读文章以了解以下内容之间的差异key类型 但这对我来说似乎很难理解 例子肯定有助于更好地理解 primary key partition key composite key clustering key 对此有很多困惑 我会尽
  • 使用 jQuery,如何选择元素 id 以某个字符串结尾的所有元素?

    使用jQuery 如何选择其中的所有元素id属性以某个字符串结尾 有一个属性结尾为选择器 attr value http api jquery com attribute ends with selector 像这样 id somethin
  • 当重叠很少时找到重叠间隔

    我有一个巨大的数据库表n整数区间 例如 1 5 4 16 6434 114343 并且需要找出哪些间隔相互重叠 有丰富的SO的类似问题 https stackoverflow com questions 4542892 possible i
  • 为什么单字母 UDF 名称不能使用 C 或 R?

    我可以编写以下有效的 VBA 函数 Public Function C As Long C 5 End Function Public Function R As Long R 6 End Function 但如果不使用 VBA 项目或模块
  • 为什么将列表作为参数传递比传递生成器性能更好?

    我正在回答这个问题 https stackoverflow com questions 59925390 how to count different elements in list of lists 59925564 noredirec
  • 将点平面分成相等的两半[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 给定一个二维平面 其中有 n 个点 我需要生成一条线的方程 该线将平面分开 使得一侧有 n 2 个点 另一侧有 n 2 个点 我假设这些点
  • Rails - params[:commit] 的目的是什么

    我注意到 每次将 Rails 表单发送到服务器时 提交按钮的名称 通常是按钮上显示的字符串 都会包含在params散列为 提交 例如 最后一个条目 utf8 gt authenticity token gt eZABpBuW7afziDMU
  • 字符串函数如何计算字符串行中的分隔符

    我有一个如下所示的字符串行 A B C D E F G H I J K L M 这意味着分隔符 计数为 12 这条线是有效的 现在假设您有以下行 A B C D E F G H 该行也是有效的 因为它包含 12 个分隔符 其中存在 8 个值
  • Grails 和 SQLite

    尝试让 SQLite 与 grails 一起工作 我在网上找到的东西似乎有点过时 对 ivy 和插件等的引用 但基于这些 http stackoverflow com questions 1199512 grails sqlite http
  • 为什么js字符串中的标签会被验证

    我有以下页面 在我的对象的 someHTML 属性中字符串中的标签 但浏览器将其读取为实际的关闭标记并关闭脚本元素 我在
  • 比较 jQuery 对象

    我正在使用选择器来获取一组对象 0 个或更多 var openMenus Triggers filter trigger hover 然后我有一个事件附加到一个项目 该项目可能位于也可能不位于上面的对象中 在该事件中 我想将触发事件的项目与
  • Rails 3 禁用会话 cookie

    我在 RoR 3 上编写了 RESTful API 我必须使我的应用程序不发送 Set Cookie header 客户端使用 auth token 参数进行授权 我尝试过使用session off and reset session但这没
  • 在应用程序中插入“在 iTunes 上下载”按钮

    我的应用程序显示某首歌曲的标题 我想插入一个 在 iTunes 上下载 按钮 该按钮可以在我的 iPhone 上打开 iTunes 并指向我的歌曲 我已经使用以下命令检索了正确的 iTunes 网址iTunes 链接制作工具 http it
  • ipdb、多线程和自动重新加载程序导致ProgrammingError

    我正在使用 ipdb 调试器在本地调试多线程 Web 应用程序 Django Plone 通常 ipdb 似乎会因为我在调试提示符下时发生的自动重新加载而感到困惑 结果堆栈跟踪出现 Users mikko code xxxx venv li
  • 剧作家 + Django:如何等待事件

    在我的测试中 我必须等待事件触发才能继续测试断言 但我不知道如何让 Playwright 等待该事件 剧作家似乎看不到该事件 django 页面的简单示例 单击按钮会触发事件boop改变文档的背景颜色 模板event html
  • ajax在asp.net中的使用

    我对使用哪种方法有点困惑 1 使用Jquery调用实现订单的HttpHandler页面 2 使用 ICALLBACKEventHandler 阅读更多 http www ajaxmatters com 2006 05 using icall
  • Meteor如何在mongo中保存模板

    我想让我的用户能够创建文档模板 合同 电子邮件等 我想出的最好的选择是将这些文档模板存储在 mongo 中 也许我错了 我已经搜索了几个小时 但我不知道如何使用它们的数据上下文呈现这些文档模板 Example Template stored
  • Jupyter 编辑模式下是否有删除行的快捷方式?

    In Jupyter s edit mode is there a shortcut for deleting a line of text Something like Ctrl L in Visual Studio Shift Dele
  • 如何确保分页 REST API 中的数据完整性?

    我目前正在研究 REST API API返回的资源预计是来自数据库的海量数据 数据库中有数千万行 分页是必须的 以避免将数据写入 HTTP 响应时消耗大量内存 当客户端请求之间数据库中存在删除 添加行时 如何确保数据完整性 例如 page