在不违反 REST 的情况下处理长查询

2023-12-30

我们有一个 REST api,并且我们在坚持 REST 精神方面做得非常好。然而,我们有一个重要的消费者,他们请求一种方法来协调他们的数据存储。流程如下:

  1. 消费者进行 GET 调用来检索在某个日期范围内创建的所有库存对象。假设这会返回 100 万个库存 VIN。
  2. 消费者将有效负载与他们自己的数据存储进行比较,发现他们缺少 5,000 个库存对象
  3. 消费者希望使用 5,000 个 VIN id 发出请求,并返回这 5,000 个对象。

问题在于长查询字符串(vins 的 JSON 数组)会遇到我们服务器施加的查询字符串长度限制。可能的想法 - 进行 5k 个单独的调用(看起来很糟糕),增加服务器上的查询字符串长度限制(不想这样做),使用 POST 代替(不是 RESTful?)。

所以,我想知道罗伊·菲尔丁会做什么......


怎么样一个POST将带有 id 列表的 JSON 文件提交到新资源,例如被称为/inventory/difference?

如果计算时间太长,您可以回答202 Accepted以及正在生成的资源的 id,然后指向它/inventory/difference/:id.

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

在不违反 REST 的情况下处理长查询 的相关文章

随机推荐

  • 模板未在backbone.js中加载(TypeError:文本未定义)

    我在学主干 js http backbonejs org 我还处于起步阶段 我想通过添加模板下划线 http underscorejs org template模板方法 但它对我不起作用 我搜索了这个错误 但无法自行修复 如果没有显示模板
  • 除了请求许可之外,如何在不干扰当前前台进程的情况下获取 MediaProjectionManager?

    问题 我有一个屏幕截图应用程序 它使用浮动覆盖服务进行控件 并使用屏幕投射 API 媒体项目管理器来访问屏幕 有时 当设备内存不足时 Android 会重新启动服务 我就会丢失媒体投影 据我所知 重新获取新媒体投影的唯一方法是重新打开请求权
  • 添加了 ValidationContext 项的 MVC 和 EF 验证

    我有一个场景 我想将一个项目添加到 ValidationContext 并在 EF 触发的实体验证中检查它 我在向导中执行此操作 因此我只能在特定步骤上验证某些内容 如果有好的模式 请分享 问题在于 在控制器操作被击中之前 验证实际上被触发
  • Flutter Bloc 状态更改未使用 get_it 更新 UI

    我一直在结合使用本登录教程和 resocoder clean 架构教程来构建登录 身份验证功能 99 工作正常 但无法正确响应LoginButton被压 由于某种原因 当LoginBloc calls AuthenticationBloc
  • 如何检索 cl.exe 的路径?

    我想检索编译器的完整路径cl exe在 Visual Studio 中从程序中调用它 我们在注册表中是否有相应的密钥 怎么做 cl exe通常位于 VCINSTALLDIR bin VCINSTALLDIR默认情况下未设置环境变量 但在打开
  • 如何通过单击按钮更改文本颜色?

    我有如下文字 p strong em QUESTION WHAT IS YOUR NAME em strong p
  • 如何使用 bind_result 与 get_result 的示例

    我想看一个如何使用调用的示例bind result vs get result以及使用其中一种而不是另一种的目的是什么 还有使用每种方法的优点和缺点 使用这两种方法有什么限制 有什么区别吗 虽然这两种方法都适用 查询 当bind resul
  • 在单个查询中保存多行

    有没有办法让 cake 在单个查询中执行多行插入 而无需编写原始 SQL 来执行此操作 saveMany 和 saveAssociated 选项只会在单个事务中保存多行 但该事务包含多个插入语句 因此这些方法显然不是编写重型应用程序的解决方
  • Dozer 映射类级别是可访问的

    我正在使用推土机框架来克隆我的对象 我希望推土机框架在不使用 getter 和 setter 的情况下克隆数据 为此我在类级别设置 is accessible 属性 但这似乎不起作用 当我在字段级别设置 is accessible 时 它
  • 使用 Windows mklink 链接 2 个文件

    我试图在 Windows 上找到 nix 符号链接的等效项 并开始使用 mklink 问题是 作为普通用户 不是管理员 我可以使用 J 选项链接到文件夹 但无法链接到文件 我设法以管理员身份执行此操作 但我需要以标准用户身份执行此操作 为什
  • 为什么使用 Scala-IDE 的 Scala 工作表会给出此错误?

    在 Scala 工作表中我可以这样做 object Play println Playing a bit gt Playing a bit case class X a Int 1 x List X 但我不能这样做 object Play
  • JWT 实际上如何与 Spring MVC 一起创建令牌并验证令牌?

    我实际上希望获得更多 更清晰的理解JWT概念及其运作方式Spring MVC 我找到了链接https github com nielsutrecht jwt angular spring https github com nielsutre
  • REACT 应用程序调用安全的 Azure WEBAPI 服务 - 无用户

    我创建了一个简单的 REACT 应用程序 该应用程序仅在连接到我们网络上大屏幕的本地 PC 上运行 仅供内部使用 它就像广告牌或仪表板 零用户交互 屏幕不是触摸屏 也没有连接键盘和鼠标 因此没有用户可以登录 构建 REACT 应用程序 然后
  • Codeigniter flash 数据在某些浏览器中不起作用

    我在使用 Codeigniter flashdata 时遇到一些问题 在 Firefox 中似乎一切正常 但在 Chrome 以及我的移动 BB 浏览器 FWIW 中 页面之间似乎没有持久保存 flashdata 我还应该注意到 当我在本地
  • openssl 握手失败

    我正在尝试编写简单的 C openssl 客户端和服务器 这是客户的代码 int main int err SSL CTX ctx init ctx client cert pem client private pem certs cace
  • 当托管在 WinForms 容器中时,WPF ScrollViewer 不会接收鼠标事件

    我们有一个 WinForms 应用程序 我们正在逐步将其转换为 WPF 此时 应用程序的主窗体是一个 Form WinForms 其中包含 WPF 中内置的垂直侧边栏 侧边栏托管在 ElementHost 控件中 侧边栏由包含其他控件的 S
  • Sql查询性能慢

    我正在编写一个 SQL 查询 这给我带来了缓慢的性能 因此 它给我带来了 504 网关超时问题 请帮助我重新创建此查询 以便我的输出结果更快 我将把查询放在下面 select r c1 parent item c2 parent item
  • 类型“NSNotification.Name”没有成员“UITextField”

    在 Swift 4 2 中 出现以下错误 在 Swift 4 中工作正常 类型 NSNotification Name 没有成员 UITextField 这是我的错误代码 NotificationCenter default addObse
  • 以引用对象为标准的 mongoid 作用域

    我在 Rails 3 中的 Mongoid 模型有以下范围 class Expert include Mongoid Document referenced in category scope currently available lam
  • 在不违反 REST 的情况下处理长查询

    我们有一个 REST api 并且我们在坚持 REST 精神方面做得非常好 然而 我们有一个重要的消费者 他们请求一种方法来协调他们的数据存储 流程如下 消费者进行 GET 调用来检索在某个日期范围内创建的所有库存对象 假设这会返回 100