【问题标题】:What result from REST endpoint is more common?REST 端点的什么结果更常见?
【发布时间】:2021-04-04 18:43:10
【问题描述】:

我们正在设计 REST-API,我们想知道 REST 端点应该以什么形式返回数据? 我们有一个端点,它返回具有不同属性的所谓“身份”对象。 每个“身份”都有唯一的字符串,例如。 UUID#cf684c35-200e-4936-8b63-e6e51b6e3569。

我们想知道开发人员更习惯哪种格式?
如下所示:

{
  "UUID#cf684c35-200e-4936-8b63-e6e51b6e3569": {
    "validity_date": 1608591121,
    "visibility": "private"
  },
  "RFID#cf684c35-200e-4936-8b63-e6e51b6e3570": {
    "validity_date": 1608591123,
    "visibility": "public".
  }
}

{
  "results": [
    {
      "identity": "UUID#cf684c35-200e-4936-8b63-e6e51b6e3569",
      "validity_date": 1608591121,
      "visibility": "private"
    },
    {
      "identity": "RFID#cf684c35-200e-4936-8b63-e6e51b6e3570",
      "validity_date": 0,
      "visibility": "1608591123"
    },
  ]
}

你的意见是什么?

【问题讨论】:

    标签: json rest architecture


    【解决方案1】:

    TL;DR我建议使用对象列表(您的第二种方法)。

    让我们将您的对象带到一个更明显的用户示例中:idname

    {
      1: {
        "name": "Michal"
      },
      2: {
        "name": "Thomas"
      }
    }
    
    
    [
      {
        "id": 1,
        "name": "Michal"
      },
      {
        "id": 2,
        "name": "Thomas"
      }
    ]
    
    

    这两种方法都可以使用,我看不出与 API 级别本身有任何区别。

    但让我们考虑一下应用程序如何提供或使用此类数据:

    • 获取用户的数据库表(例如下周的生日)
    • 显示用户表(例如用户名和生日)
    • 处理员工的月薪

    所有三个示例都使用用户列表,这是第二种方法。由于许多应用程序都在实体列表上运行,因此这是 API 的常识。

    【讨论】:

      【解决方案2】:

      我觉得它[]比它{ "results": [] }好。

      说起来,我认为 2 号更好,因为 [在某些语言上] 映射它比映射 1 号更容易。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-19
        • 2013-08-14
        • 2020-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-19
        相关资源
        最近更新 更多