设计REST API

问题描述 投票:0回答:1

我正在使用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对象中添加标签字段,它将在后端汇编。什么是最佳做法?

django rest api
1个回答
1
投票

数据表示是前端工作。您的api唯一工作是尽可能快地向具有访问权限的用户提供原始数据。这就是为什么在api答案中加入数据并不好。

此外,你将使你的api膨胀,包括不真正属于Device的字段。下次前端需要更新标签格式时,它也会触发对api的更改。

但。如果将标签加入设备允许您不将命名法和Device_type暴露给api,即每次减少所需的http呼叫数量至少2,我认为通过设备端点允许检索标签是一个很好的决定(或者更确切地说是加入那些对象进入api响应并仍然允许前端自己构建标签格式)。

© www.soinside.com 2019 - 2024. All rights reserved.