api - (POST)rest API的请求正文中的数组与哈希图
问题描述
我正在构建一个涉及前端(基于 JavaScript 浏览器的客户端)和后端(基于 Java 的服务)的应用程序。
对于将从浏览器调用到后端服务的 API(POST 方法)之一(在前端填写表单后),我计划按如下方式传递请求正文(JSON)
{
data: [
{
"fieldId": "123sda121231",
"fieldValue": "some_user_input_for_field_1",
},
{
"fieldId": "223sda121231",
"fieldValue": "some_user_input_for_field_2",
},
{
"fieldId": "323sda121231",
"fieldValue": "some_user_input_for_field_3",
}
]
}
但是,现在我很困惑,我想知道我是否应该按照以下方式进行操作。
{
data: {
"123sda121231": "some_user_input_for_field_1",
"223sda121231": "some_user_input_for_field_2",
"323sda121231": "some_user_input_for_field_3"
}
}
有人可以帮助我了解构建此请求正文的更好方法吗?
PS FieldIds 是在后端预定义的。
解决方案
通常,在设计问题中,没有单一的正确答案,一个解决方案可能对一个问题有利,而对另一个问题可能不利。
我更喜欢创建对象数组的方法(让我们将类称为FieldData
)。在上面的例子中,FieldData
类是:
public class FieldData{
String fieldId;
String fieldValue;
}
我看到这种方法的好处:
- 响应非常灵活,将来我们可以轻松地在
FieldData
对象中添加一个字段,而不会破坏 API 契约。 - 发送的响应更容易让客户端理解,客户端会知道其中
fieldId
包含字段的 id 并fieldValue
包含其值。而在地图的情况下,此逻辑不是明确可用的。
推荐阅读
- or-tools - 车辆路径问题,如何调用数据
- javascript - 将不同元素的js数组传递给php进行验证并存储在mysql数据库中?
- php - 如何从上到下拆分 2 列的数据?
- python-3.x - 如何在 Python 3 中逐行汇总文本文件中的所有数字并存储到不同的文件中
- python - 如何使 Hexchat 线程安全的 Python 插件?
- python - ModuleNotFoundError:没有名为“pkg”的模块
- javascript - 异步函数不返回 json 对象
- javascript - 在制作打开/关闭 window.scrollBy() 的按钮时遇到问题
- list - LINQ - 字符串的一部分包含在列表元素中
- excel - 另存为文件,然后检查它是否存在于目录中