我正在使用django-REST为我的Web应用程序设计API,并使用Vue.js前端。有几个“目录”模型。每个目录项都有id字段,并且可以具有到其他目录项的链接字段。这是一个例子
设备项目
{
"id": 1,
"serial_num": "xxx",
"comment": "",
"nomenclature": 2,
"device_type": 3
}
命名项目
{
"id": 2,
"label": "HP probook 450",
}
Device_type项
{
"id": 3,
"label": "Laptop",
}
设备项的完整标签必须是“device_type + nomenclature”=“Laptop HP probook 450”。因此,当我需要前端设备项目的完整标签时,我必须解析字段“命名法”和“device_type”,然后我得到标签。但对于每种类型的对象,我应该使用特殊功能来解析其标签。对象的层次结构可以更深入。
也许我应该在Device对象中添加标签字段,它将在后端汇编。什么是最佳做法?
数据表示是前端工作。您的api唯一工作是尽可能快地向具有访问权限的用户提供原始数据。这就是为什么在api答案中加入数据并不好。
此外,你将使你的api膨胀,包括不真正属于Device的字段。下次前端需要更新标签格式时,它也会触发对api的更改。
但。如果将标签加入设备允许您不将命名法和Device_type暴露给api,即每次减少所需的http呼叫数量至少2,我认为通过设备端点允许检索标签是一个很好的决定(或者更确切地说是加入那些对象进入api响应并仍然允许前端自己构建标签格式)。