前后端数据交互:格式约定与一致性
高效的后端API设计需要前后端就数据交互格式达成一致。本文探讨前后端数据交互中,树形JSON和扁平化JSON格式是否必须一致的问题。
后端API通常返回树形结构的JSON数据,例如:
[
{
"id": 6,
"fid": 0,
"displayorder": 0,
"img": "",
"title": "苹果",
"children": [
{
"id": 7,
"fid": 5,
"displayorder": 1,
"img": "",
"title": "烟台苹果"
},
{
"id": 8,
"fid": 5,
"displayorder": 2,
"img": "",
"title": "大连苹果"
}
]
},
{
"id": 9,
"fid": 0,
"displayorder": 0,
"img": "",
"title": "橘子"
}
]
前端则可能使用扁平化的JSON数据进行提交:
[
{
"id": 6,
"fid": 0,
"displayorder": 0,
"img": "",
"title": "苹果"
},
{
"id": 7,
"fid": 5,
"displayorder": 1,
"img": "",
"title": "烟台苹果"
},
{
"id": 8,
"fid": 5,
"displayorder": 2,
"img": "",
"title": "大连苹果"
},
{
"id": 9,
"fid": 0,
"displayorder": 0,
"img": "",
"title": "橘子"
}
]
那么,这两种格式是否必须一致呢?
答案是否定的。前后端数据交互格式不必完全相同,但需要预先约定清晰的规范。 请求数据格式(规范一)和响应数据格式(规范二)可以不同。 关键在于双方严格遵守各自的规范。
例如,后端API可能要求请求数据为:
{
"fun": "add",
"args": [1, 2]
}
而返回数据格式为:
{
"fun": "add",
"results": [3]
}
只要前后端都按照约定好的格式进行数据传输和解析,就能确保数据交互的正确性。 核心在于双方达成一致,并确保程序能够正确处理这些约定好的格式。