在一个请求中创建多个项目的 RESTful 方式

2024-04-03

我正在开发一个小型客户端服务器程序来收集订单。我想以“REST(ful)方式”来做到这一点。

我想做的是:

收集所有订单行(产品和数量)并将完整订单发送到服务器

目前我看到有两种选择可以做到这一点:

  1. 将每个订单行发送到服务器:POST qty 和 Product_id

我实际上不想这样做,因为我想限制对服务器的请求数量,所以选项 2:

  1. 收集所有订单行并将其立即发送到服务器。

我应该如何实施选项2?我的几个想法是: 将所有订单行包装在 JSON 对象中并将其发送到服务器或使用数组来发布订单行。

实施选项 2 是一个好主意还是好做法,如果是,我应该怎么做。

什么是好的做法?


我相信解决此问题的另一种正确方法是创建另一个代表您的资源集合的资源。 例如,假设我们有一个像这样的端点/api/sheep/{id}我们可以发布到/api/sheep创建羊资源。

现在,如果我们想支持批量创建,我们应该考虑一个新的集群资源/api/flock (or /api/<your-resource>-collection如果你缺乏一个更好有意义的名字)。请记住资源不需要映射到您的数据库或应用程序模型。这是一个普遍的误解。

资源是更高级别的表示,与您的数据无关。对资源进行操作可能会产生显着的副作用,例如向用户发出警报、更新其他相关数据、启动长期存在的进程等。例如,我们可以映射文件系统甚至 unixps命令作为 REST API。

我认为可以安全地假设操作资源也可能意味着创建几个其他实体作为副作用。

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

在一个请求中创建多个项目的 RESTful 方式 的相关文章

  • 如何在 PHP 中检查不完整的 POST 请求

    当连接速度较慢的远程 Web 客户端无法发送完整的 POST 请求时 我遇到了问题multipart form data内容 但 PHP 仍然使用部分接收到的数据来填充 POST大批 结果一个值 POST数组可能不完整 并且可能会丢失更多值
  • 正确的需要授权的资源的http状态代码

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

    是否可以使用可选路径变量定义路径 就像下面的 uri app make make model model year year mileage mileage fuelType fuelType maxPrice maxprice trans
  • 表单未使用 AJAX 提交

    再次更新 如果有人关心的话 我之前发布的解决方案由于某种原因停止工作 我在 ajax 请求中包含了 beforeSend 并将验证表单的 js 部分粘贴到其中 现在就像一个魅力 form on submit function e e pre
  • 在 JSON 对象中强制执行非空字段

    我们的 REST API 接收一些 JSON 对象输入 其中某些字段要求不为空 这些可以是字符串 整数 甚至可以是其他一些类实例作为参考 我们正在尝试找到一种方法来强制这些字段不为空 而不是在 API 中进行空检查的正确方法 当前的 if
  • PHP:如何获取
    中的名称值

    有没有办法获取form标签中name属性的值 我正在使用 PHP 但在 中没有看到它 POST 有没有办法获取form标签中name属性的值 我正在使用 PHP 但在 POST 中没有看到它 不 表单的名称属性永远不会设置为作为 POST
  • jquery ajax 发送到 MVC 控制器时不断收到 400(错误请求)

    我的 ajax 调用看起来像这样 ajax actually approve or reject the promotion url url type POST data data PromotionId data UserId data
  • 将 MIME 编码的附件发布到 Ariba Supply Network 时出现问题

    我在尝试使用 VB NET 和 WebRequest 对象发布一些 cXML 文本和附件时遇到问题 我相信我正在格式化我希望正确发布的数据文本 因为它与 Ariba 提供的示例相匹配 我不确定的是我是否正确使用 WebRequest 对象来
  • Mandrill 通过 REST API 作为单独的消息发送给多人

    我正在尝试使用山魈发送邮件 问题是 当我将多个收件人添加到 收件人 参数时 它会多次向 收件人 列表中的所有收件人发送同一封邮件 我期望将相同的邮件单独发送给列表中的每个人 我错过了什么吗 key app key template name
  • 在哪里放置资源特定逻辑

    您能帮我考虑在 AngularJS 中将资源 服务 特定的业务逻辑放置在哪里吗 我觉得在我的资源上创建一些类似模型的抽象应该很棒 但我不确定如何做 API调用 gt GET customers 1 lt first name John la
  • 按照约定应返回哪些 REST PUT/POST/DELETE 调用?

    根据 REST 意识形态 PUT POST DELETE 请求的响应正文中应该包含什么 返回码呢 是HTTP OK enough 如果有的话 这种约定的原因是什么 我发现了一篇描述 POST PUT 差异的好文章 发布与放置 http ww
  • 如何使用 http 将 Android 中的文件从移动设备发送到服务器?

    在android中 如何使用http将文件 数据 从移动设备发送到服务器 很简单 您可以使用 Post 请求并将文件作为二进制 字节数组 提交 String url http yourserver File file new File En
  • 使标签充当输入按钮

    我怎样才能做一个 a href http test com tag test Test a 就像表单按钮一样 通过充当表单按钮 我的意思是 当单击链接执行操作时method get 或 post 以便能够通过 get 或 post 捕获它
  • 重置 Windows Phone 照片上传

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

    我有从数据库生成的以下动态表
  • Yammer API 限制

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

    我想在我的服务器上尝试一次调用 直到成功为止 我想每 30 秒尝试一次 所以我使用 NSURLSession 进行通话 NSURLSessionDownloadTask task self session downloadTaskWithR
  • symfony api 平台深度

    到目前为止 我们一直在 Symfony Doctrine 和 Serializer 深度方面苦苦挣扎 我希望能够使用 Symfony 提供一级深度的 JSON REST API 从而允许我直接从视图管理我的 外键 和关系逻辑 GET peo
  • 自托管 WCF REST 服务和基本身份验证

    我创建了一个自托管的 WCF REST 服务 带有 WCF REST Starter Kit Preview 2 中的一些额外内容 这一切工作正常 我现在正在尝试向服务添加基本身份验证 但我在 WCF 堆栈中遇到了一些相当大的障碍 这阻止了
  • 无法将 POST 方法与 Feign 一起使用

    我正在尝试为 stockfigher 游戏 api 编写包装器 只是为了了解 feign 的工作原理 但我对第一个 POST 方法有疑问 RequestMapping method RequestMethod POST value venu

随机推荐

  • 正确中止或取消 PostAsync

    使用 HttpClient 时是否有保证取消帖子的方法 我目前有一个调用 do PostAsync 的方法 我试图使用取消令牌取消该调用 但它似乎实际上并没有中止 停止操作 我仍然可以看到我上传的图像已正确发布 我在这里做错了什么 或者 H
  • 用户警告:布尔系列键将被重新索引以匹配 DataFrame 索引

    使用此语句时 会在单个语句中显示多个警告 Internaldfdeny pd DataFrame Count Internaldf Internaldf Status deny Internaldf SrcIP NA Internaldf
  • 如何在打印机中打印图像文件

    我编写了一个简单的程序来在 JSF 中打印图像 我有一张图像 sampleImage png 我已经将我的电脑连接到打印机 我手动打开图像并选择打印选项 然后我从打印机获得图像 现在我想使用 javascript 打印图像 文件名 imag
  • 配置文件实体框架

    我有以下示例代码 Context context new Context Repository repository new Repository context Post post repository First
  • Go中的函数和方法有什么区别?

    我正在尝试开始使用 Go 和文档 http golang org非常好 我在文档中没有找到函数和方法之间的区别 据我目前的理解 函数是 全局 的 这意味着我不必导入包来使用函数 它们总是存在的 方法绑定到包 它是否正确 据我目前的理解 函数
  • 需要 Spark sql 中 SQL IsNumeric 函数的等效功能

    就像我们有 SQL ISNUMERIC 函数来验证表达式是否为数字一样 我需要 Spark SQL 中是否有任何等效的函数 我试图找到它但无法找到它 请问有人可以提供帮助或建议吗 尝试使用spark udf 这种方法将帮助您克隆任何函数 s
  • 在 javascript 中将变量传递给异步函数(promise)

    我有以下代码循环运行 var index fileNames x lastIndexOf 1 var currentImageName fileNames x substr index if currentImageName indexOf
  • 如何在vim中刷新标签列表?

    当我对文件进行更改 例如添加功能 时 如何使标签列表在保存更改后自动更新其窗口中的 标签列表 我调整了我的设置C 代码补全 vim 提示 http vim wikia com wiki C 2B 2B code completion map
  • 为什么 firePropertyChange(String propertyName, Object oldValue, Object newValue) 受保护而不是公开?

    嗯 问题是我正在研究一个IDateEditor接口实现来自日历 http www toedter com en jcalendar 图书馆 我注意到Component firePropertyChange 字符串属性名称 对象旧值 对象新值
  • 来自设备的 dSYM 文件

    我的应用程序崩溃了 两天来我找不到重现崩溃的确切方法 所以 我想解码 dSYM 文件 看看有什么问题 希望有帮助 如何从设备获取 dSYM 文件 您可能需要从 Xcode 构建产品获取 dSYM 打开 Xcode 管理器 在 Xcode 中
  • Boost Spirit x3 - 惰性解析器

    有最新的吗boost spirit x3实施lazy解析器 我发现它在文档 https www boost org doc libs develop libs spirit doc x3 html spirit x3 quick refer
  • 对于移动 Safari 来说 AJAX 响应太大?

    我在调试移动 Safari 的 Web 应用程序时遇到了一些问题 该 Web 应用程序是相当复杂的服务器端模拟工具的前端 该网络应用程序的工作原理概述如下 用户将看到一个屏幕 他们可以在其中填写要执行的模拟的值 用户单击 运行模拟 此时将对
  • 如何获取 Nodejs 中显示的 console.log 行号?

    有一个旧的应用程序 它使用以下命令打印出大量消息console log 但我就是找不到哪些文件和行console log叫做 有没有办法连接到应用程序并显示文件名和行号 每个调用都有完整的堆栈跟踪有点吵 我刚刚改进了 noppa 的解决方案
  • 如何使用php传递和访问数组变量

    我有一个数组 param 在给出 Print r 时 输出如下 Array pattern gt status gt Array 0 gt 0 1 gt 4 我必须将状态值传递给一个函数 例如 function value action p
  • 如何使用ggplot2从geom_tile(热图)中删除白线

    我无法去除热图中图块之间的白线 下面是我的代码和图片 以前有人遇到过这种情况吗 t lt ggplot Drug heatmap df final aes x reorder Drug Total Deaths y Start Date f
  • 分配内存的嵌套结构

    gcc c89 我在这一行得到堆栈转储 strcpy comp gt persons gt name Joe 但是 我已经分配了内存 所以不确定为什么我会得到它 我在这里错过了什么吗 非常感谢您的任何建议 include
  • 将 WooCommerce 订单项自定义字段总和保存为新元数据

    当在此 WooCommerce 商店中订购特定产品时 两个元值将添加到订单中 存储元值的两个字段位于wp woocommerce order itemmeta 元键是 quantity assemblycost 我想在下新订单时以编程方式创
  • 从字符串 Django 模板中删除第一个字符

    我知道这个问题已经被问过多次 但每个人都达到的解决方案 和文档 似乎并不适合我 尝试删除第一个字符 Code is picture picture path slice 1 但结果仍然是 DOF mrD5T49 jpg 试图获得前导点 我是
  • ActiveMQ:如何以编程方式监控嵌入式代理

    我想从代码内部监控嵌入式 ActiveMQ 5 8 代理 如何才能做到这一点 我需要 JMX 连接吗 我想防止暴露 JMX 有没有办法访问org apache activemq broker jmx http activemq apache
  • 在一个请求中创建多个项目的 RESTful 方式

    我正在开发一个小型客户端服务器程序来收集订单 我想以 REST ful 方式 来做到这一点 我想做的是 收集所有订单行 产品和数量 并将完整订单发送到服务器 目前我看到有两种选择可以做到这一点 将每个订单行发送到服务器 POST qty 和