RESTful:在一个请求中创建多条记录

2024-04-09

我有一个允许用户向其他人发送邀请的表单。邀请的数量可由用户在用户界面中配置,并且理论上可以是无限的。用户需要为每个邀请定义一个电子邮件地址。

单击“发送”时,理想情况下应该向服务器发送一个请求,将所有记录包装在一次批量提交中。尽管这并不是真正的 RESTful(我听说),但它似乎比发送可能 50 个单独的请求更有利。但是,执行此操作的正确方法是什么?

当其中一个邀请由于电子邮件地址格式错误或重复邀请等原因而失败时,事情就会变得棘手。正确处理其他有效请求并在无效请求上提供错误是很好的,但是为此使用什么响应状态代码呢?

通常我尝试使用 JSONAPI 请求格式。错误将位于称为错误的顶级对象中,并且将是由多个对象组成的数组。错误对象中的字段键将指向错误的记录索引号(如在请求中接收到的)和字段名称,即"field": "/invites/0/email"第一个收到的记录中的电子邮件字段出现错误。


我见过的“批量请求”问题的最佳解决方案是 Google Calendar 的 API。它是一个 RESTful API,因此每个资源都有一个 URL,您可以使用标准 REST 语义(即 GET、POST、PUT、DELETE)对其进行操作。但该 API 还公开了一个“/batch”端点,它接受“mixed/multipart”的内容类型,并且请求正文包含多个嵌套的 HTTP 请求,每个请求都有自己的标头、方法、url 和所有内容。该响应也是一个内容类型为“混合/多部分”的 HTTP 响应,其中包含单个 HTTP 响应的集合,每个请求一个响应。

该解决方案的优点在于 1. 它允许您以 RESTful 方式设计系统,这是我们都知道和喜爱的。 2. 它可以很好地推广到您的系统可以处理的任何 HTTP 请求组合。

欲了解更多信息,请参阅:https://developers.google.com/google-apps/calendar/batch https://developers.google.com/google-apps/calendar/batch

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

RESTful:在一个请求中创建多条记录 的相关文章

  • Magento 2 REST API 客户自定义属性

    Magento 2 REST API 文档解释了在更新或创建客户时设置custom attributes 的方法 http devdocs magento com swagger index 20 html http devdocs mag
  • 正确的需要授权的资源的http状态代码

    如果用户尝试访问需要用户登录的页面 则返回的正确 http 状态代码似乎存在很多混乱 那么当我显示登录页面时基本上会发送什么状态代码 我很确定我们需要在4xx range 我在这里讨论的不是 HTTP 身份验证 因此我们至少不会使用 1 个
  • PayPal Rest API for Payments 在沙箱中返回 NULL

    我有一个 PayPal 沙盒帐户 我可以在 PHP 上使用curl 通过 api 检索令牌 但是处理测试卡只会返回 null 有人看到代码有问题吗 这是 PayPal 沙盒的已知问题吗 下面代码片段中的客户端是伪造的 但是 如前所述 使用我
  • Flask API TypeError:“Response”类型的对象不可 JSON 序列化

    我在使用 Python Flask Restful API 时遇到问题 并且数据发送到 Elasticsearch 当我使用 Postman 发布新数据时 问题是 类型错误 响应 类型的对象不可 JSON 序列化 你能帮助我吗 Model
  • 如何在WCF Rest服务中从流上传图像

    我正在尝试创建 wcf 服务 该服务将上传 pdf doc xls 图像等文件 但 pdf txt 文件正在上传并正确打开 但是当我尝试上传图像文件时 文件正在上传 但是图像不可见 OperationContract WebInvoke M
  • 如何在 REST WCF 服务中接受任意 JSON 对象?

    我想实现这样的服务方法 OperationContract WebInvoke RequestFormat WebMessageFormat Json ResponseFormat WebMessageFormat Json public
  • 将消息添加到天蓝色存储队列而不使用base64编码?

    我无法将我的请求编码为 base64 并且根据文档我不应该这样做 但我无法弄清楚 如果我 Base64 编码它工作正常
  • Delphi XE5 REST/Android 客户端“会话已过期”

    我有一个REST Server与Android Client 都在Deplhi Xe5 Android客户端成功连接Rest服务器 在我的服务器中我有一个TDSHttpWebDispatcher with SessionTimeout 12
  • 如何限制 JSON 访问?

    我有一个 Web 应用程序 可以从新创建的 JSON API 中提取数据 我的静态 HTML 页面通过 JavaScript 从静态 HTML 页面动态调用 JSON API 如何限制对 JSON API 的访问 以便只有我 我的网站 可以
  • 重置 Windows Phone 照片上传

    我正在尝试使用 RestSharp 将照片上传到 Windows Phone 7 应用程序中的 REST api 进行获取 发布 post参数如下 photo 照片 编码为多部分 表单数据 照片 相册 id 现有相册的标识符 可以是一个事件
  • 微服务、amqp 和服务注册/发现

    我正在研究微服务架构 实际上我想知道一些事情 我非常同意使用 返回 服务发现来在基于 REST 的微服务上发出请求 我需要知道发出请求的服务 或至少是服务器集群的前端 在哪里 因此在这种情况下能够发现 ip port 是有意义的 但我想知道
  • 为什么将 SOAP 用于 Web 服务?

    我读过教程 web service php mysql xml json http davidwalsh name web service php mysql xml json 看来一切都好 但是为什么我们应该使用soap 来提供网络服务呢
  • Spring REST 控制器中带有 RequestBody 的 XML/JSON POST

    我正在使用 Spring 3 0 创建一个 RESTful 网站 我在用ContentNegotiatingViewResolver以及 HTTP 消息转换器 例如MappingJacksonHttpMessageConverter对于 J
  • 对不存在的资源进行 GET 的 REST 标准

    资源 user 12345 不存在 假设消费者随机尝试不同的 id 没有授权 任何用户都可以查看任何用户 从更广泛的意义上来说 我的问题是 如果对不存在的资源执行 GET 操作 您应该返回什么 我应该为不存在的 id 返回空用户 还是应该返
  • 在 Spring 中为 @Pathvariable 添加类级别验证

    在发布这个问题之前 我已经做了很多研究并尝试了很多可用的解决方案 这是我陷入的棘手情况 我有一个 Spring 控制器 它有多个请求映射 它们都有 PathVariables 控制器如下所示 Controller EnableWebMvc
  • Yammer API 限制

    Yammer Rest api 文档表示 每个应用程序每个用户在 10 秒内最多可以发出 10 个请求 问题 什么是user这里 是为当前经过身份验证的 yammer 用户发出请求的 IP 地址还是承载令牌 如果我们所有的用户都使用相同的外
  • NodeJS:将 JSON 保存到 MongoDB

    我正在尝试从 API 获取 JSON 并将其存储到 MongoDB 数据库中 显然 这是行不通的 我的应用程序似乎停留在我尝试将数据保存到数据库的位置 请告知该怎么做 这是我的代码 var express require express v
  • 在java中轮询Http服务器(重复发送http get请求)

    当对其进行 REST 调用时 我的 Web 服务器会发送一些信息 我想不断轮询该服务器 间隔5秒后重复发送HTTP GET请求 以检查返回的信息是否有任何变化 做到这一点最有效的方法是什么 您能提供一些代码示例吗 请注意 我只想开发客户端代
  • 如何设计 RESTful 搜索/过滤? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我目前正在 PHP 中设计和实现 RESTful API 然而 我并没有成功地实现我最初的设计 GET users list of users
  • git 是否有任何静态接口?

    我一直在寻找一个宁静的 git api 但似乎没有找到 我得到的最接近的是 Github 的 api 来访问一些存储库信息 还有其他的实施吗 Orion Git API http wiki eclipse org Orion Server

随机推荐

  • Response.Redirect() ThreadAbortException 间歇性冒泡过高

    我 现在 明白 Response Redirect 和 Response End 抛出 ThreadAbortException 作为终止当前处理线程以模拟 ASP Classic 的 Response End 和 Response Red
  • Mongodb 尝试从聚合中返回选定的字段

    我的聚合函数遇到问题 我试图从数据库中获取用户最常见的订单 但我只返回名称和计数 我尝试过使用 project运算符 但我似乎无法让它返回除其中内容之外的任何内容 group陈述 这是我当前的聚合函数 OrderModel aggregat
  • Android 材质库 ShapeableImageView 未使用 app:shapeAppearanceOverlay 显示预览

    使用有问题ShapeableImageView材料成分及组合shapeAppearanceOverlay使其成为圆形图像 它不会显示在视口中 好像我们将可见性设置为GONE 然而 它在设备上完美显示 有什么办法可以解决吗 或者因为它仍然在1
  • 从提交中排除隐藏的表单字段

    我根据复选框的状态隐藏 显示 div
  • SQL 查询按最接近的匹配排序

    我们有一个位置搜索页面 这给我们带来了我以前从未遇到过的挑战 在我们的数据库中 我们有一个城市 州等的列表以及相应的地理编码 到目前为止一切都很有趣 我们在名为 威斯康星州 Black River Falls 的城市设有两家分店 最近又在
  • 如何为 hotchocolate 12 graphql 中的扩展字段设置虚拟过滤器处理程序?

    我有一个扩展属性需要可过滤 但是它从不同的数据源获取数据 这意味着默认过滤将不起作用 因为查询无法正确翻译 我想创建一个虚拟过滤器类型处理程序 然后根据查询上下文手动应用过滤器 public class User public string
  • 在 cPanel 上设置 Laravel 项目

    我正在尝试将 laravel 项目设置为 cpanel 上的子域 但遇到解析问题和错误 这些是我到目前为止所做的步骤 压缩项目并将其上传到此目录public html encuestas 解压并将内容移动到上面的目录 使用 PuTTY 获取
  • 设置 XGBoost 提前停止的 Tol

    我正在使用 XGBoost 并提前停止 经过大约 1000 个 epoch 后 模型仍在改进 但改进的幅度非常低 IE clf xgb train params dtrain num boost round num rounds evals
  • 编写 webkit Css 后滚动条中没有箭头按钮

    请参阅此处的表格 http www funkkopfhoerer test com vergleichstabelle funkkopfhoerer http www funkkopfhoerer test com vergleichsta
  • Android中自定义圆形复选框

    我正在尝试获取 Google 应用程序照片选择 UI 我正在使用 Appcompat 复选框来实现这一目标 但没有成功 我正在努力的步骤 1 将复选框背景设置为自定义圆形 2 在xml中定义自定义形状 这是我的复选框 xml 的样子
  • ASP.NET Core SignalR websocket 连接限制

    我使用 Microsoft AspNetCore SignalR Client 对在 Windows Server 2016 标准上托管的 SignalR ASP NET Core 应用程序进行负载测试 安装了 Dotnet 核心托管 2
  • 模板参数 - 带有可变参数的函数指针

    我知道我可以这样做 template
  • 如何在春季结束会话 3

    我在用 SessionAttributes在春天 但我不知道如何结束会话 我尝试了下面的代码 但出现错误 请给我一些例子 Thanks RequestMapping value LogoutAction public String logo
  • 在没有受信任证书的情况下安装 .appx?

    我有一个 Windows 8 应用程序 我想将其部署到我的 Windows RT 2 我只有 appx 我想绕过商店安装它进行测试 但是 当我运行命令时 Add AppxPackage
  • 克隆二叉树的时间复杂度

    我想知道克隆二叉树的代码的时间复杂度是否为 O n 如果是 O n 你能解释一下为什么吗 如果没有 你能建议一种时间复杂度为 O n 的方法吗 public TreeNode cloneTree TreeNode root if root
  • 需要查看sql中的一个日期范围是否与另一个日期范围重叠

    我有一个存储房间预订的表 其架构是 ID ROOM ID CHECK IN DATE CHECK OUT DATE USER ID 我需要对一组日期范围内可用 不可用的房间运行搜索查询 另请记住 还有另一个表保存预订房间的日期 其格式如下
  • Angular 5 的子路由无法正常工作

    您好 我正在尝试使用子路由 但它无法按预期工作 我的 Angular 5 结构 在这种情况下 顶部导航包含加载子模块的链接 子导航包含更新子模块内容的链接 应用程序模块 和应用程序组件 包含一个顶部导航栏 用于导航到不同的子模块 应用程序组
  • 根据任何列值从数据框中删除行[重复]

    这个问题在这里已经有答案了 我有一个这样的数据框 Plate MeanV1 MeanV2 MeanV3 etc 0 1 3 2 4 8 6 8 1 1 3 1 10000 10000 2 2 2 8 4 6 6 1 3 2 2 9 5 1
  • 删除使用闭包语法按名称创建的通知中心观察者是否足够?

    我有一些使用块 尾随闭包语法创建的通知 如下所示 NotificationCenter default addObserver forName NSManagedObjectContextObjectsDidChange object mo
  • RESTful:在一个请求中创建多条记录

    我有一个允许用户向其他人发送邀请的表单 邀请的数量可由用户在用户界面中配置 并且理论上可以是无限的 用户需要为每个邀请定义一个电子邮件地址 单击 发送 时 理想情况下应该向服务器发送一个请求 将所有记录包装在一次批量提交中 尽管这并不是真正