【问题标题】:Design REST API设计 REST API
【发布时间】:2019-04-05 13:10:05
【问题描述】:

我正在使用 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”。因此,当我需要前端设备项的完整标签时,我必须解析字段“命名法”和“设备类型”,然后我得到标签。但是对于每种类型的对象,我都应该使用特殊的函数来解析它的标签。对象的层次结构可以更深。

也许我应该在设备对象中添加标签字段,它将在后端组装。最佳做法是什么?

【问题讨论】:

    标签: django rest api


    【解决方案1】:

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

    此外,您的 api 会变得臃肿,包括不真正属于 Device 的字段。下次前端需要更新标签格式时也会触发api的变化。

    但是。如果将标签加入 Device 允许您不将 Nomenclature 和 Device_type 暴露给 api,即每次将所需的 http-calls 数量减少至少 2,我认为允许通过 Device 端点检索标签(或者只是加入那些对象转换为 api 响应,仍然允许前端自行构建标签格式)。

    【讨论】:

    • 谢谢。我会考虑的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 2015-07-24
    • 1970-01-01
    • 2011-08-04
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多