rest - 通过后续调用HTTP API推送海量数据:verb to commit操作
问题描述
我将实现一组 API,使客户端能够通过 HTTP 调用将大型数据集推送到服务器。
为了符合 REST,我设计了我的 API,以便如果(相对)URL 上有一组资源可用:
/我的实体
提供以下调用:
发布 /myEntities/Partials
- 创建一个新的部分资源并返回其 Id
补丁 /myEntities/Partials/{id}
- 根据之前检索(创建)的 Id,发送整个数据集的子集
删除 /myEntities/Partials/{id}
- 通知服务器整个数据集已经发送。通过接收这个调用,服务器对接收到的所有部分数据进行计算和重组,删除所有 myEntities 并用新计算的结构替换它们。之后,它会删除与指定 id 相关的所有部分数据
我对最后一次调用并不满意,因为尽管有动词 (DELETE),但它不仅删除了一组(部分)资源,而且还创建了新的(完整)资源。
我还想用类似的东西替换最后一个电话:
POST /myEntities(需要 {id} 作为正文中的参数)
这样一来,问题就迎刃而解了:动词(POST)不仅创建了一组新资源,而且还删除了一组部分资源。
我想知道是否有正确的动词来执行创建一组新实体并删除部分实体的原子操作。
注意:官方 HTTP 规范 RFC 2616 和 RFCs 7230-7235,除了标准方法的定义外,还允许自定义方法,但我想避免发明新方法!
相关问题: 如何设计HTTP API来推送海量数据?
解决方案
推荐阅读
- webpack - 如何更改 vue.js 应用程序中的 lint 目录?
- mysql - 优化 SQL 查询“SELECT”
- java - Selenium 测试在成功执行测试后抛出错误
- javascript - 未对数据进行排序时金字塔未正确呈现
- javascript - 为什么我的条形图上的 X 轴不是从零开始?
- database - 关系与非关系数据库 - 运动结果和模式
- sparql - 无法使用 GeoSparqrl 和 sfWithin 函数找到点是否在多边形内
- php - 如何使用带返回的 Foreach 数据 Codeigniter
- sql - SSRS 按最接近值对列进行排序
- vue.js - Vue中如何获取表格中的行名和列号?