api - REST API 设计 - 在请求中传递多行 - 保存按钮
问题描述
前端:
前端会有一张桌子。数据将填充到表格的几列中。用户将输入剩余的数据列。该表将有多行。
会有两个按钮。保存并提交。SAVE 按钮用于临时存储数据,SUBMIT 将发送最终要存储的数据。
DB:
每一行代表数据库表中的一条记录
表格和 UI 看起来都一样:
Column1 Column2 Column3 Column4
----------------------------------------
Row1 | data | | data |
Row2 | data | | data |
Row3 | data | | data |
Row4 | data | | data |
现在,当用户单击 SAVE 按钮时,我需要使用 REST API 调用将剩余的列信息存储在数据库中。
设计 REST API 的最佳方式是什么?
我心中的问题,
1. 如果是单条记录,我可以使用 PATCH 来做到这一点。但应在请求中传递多行。如何构建我的请求?
2. 我应该使用 POST 吗?
3. 我应该将所有行作为列表传递吗?
4. 如果用户多次点击保存怎么办?这会增加其余呼叫并使网络过载吗?如何有效地处理这个问题?
解决方案
Q1 & Q2 & Q3:您可以根据应用程序的非功能需求(和个人偏好)使用 PATCH 或 POST。请参阅下面的链接以了解如何实现它。
REST:使用一个请求更新多个资源 - 它是标准的还是应该避免的?
Q4:您可以限制您的“保存”按钮。一个简单的实现是在单击“保存”按钮后禁用它。这可以通过 Javascript 轻松实现。然后,一旦您从服务器获得响应(REST API 响应),您就可以显示错误消息(并重新启用“保存”按钮)或根据 REST API 响应显示成功消息。
推荐阅读
- java - Spring Integration DestinationResolutionException:没有可用的输出通道或回复通道标头
- woocommerce - Woocommerce 根据变化获取脚本数据并在需要时突出显示下拉字段
- java - Android OS11,无法使用隐式意图共享文件
- javascript - 在javascript中将指纹添加到PDF
- android - Kotlin HTTP 请求
- javascript - 我不知道可迭代是什么意思
- firebase - 如何将 Flutter 项目迁移到 Firebase 版本 9 现代 Web 模块化风格
- excel - 使用 Excel VBA 的 FILTER 函数仅生成一行数据而不是列表。为什么要添加“@”(此行)符号?我怎样才能防止这种情况?
- javascript - 如何在没有 navigator.platform 的情况下确定浏览器平台
- javascript - 如何使用javascript在plotly中旋转数据点的文本标签