【问题标题】:What is correct way of sending list/tabular data JSON with REST?使用 REST 发送列表/表格数据 JSON 的正确方法是什么?
【发布时间】:2012-10-16 11:18:13
【问题描述】:

我正在开发一个 RESTful API。我们的一个屏幕显示了总计表格。

以下是返回数据的两个 JSON 响应

第一

    [
            {
                    "name": "Richard",
                    "bank_balance": 3000,
                    "assets_worth": 4000,
                    "total": 7000
            },
            {
                    "name": "John",
                    "bank_balance": 1000,
                    "assets_worth": 2000,
                    "total": 3000
            },
            {
                    "name": "Total",
                    "bank_balance":4000,
                    "assets_worth": 6000,
                    "total": 10000
            }    
    ]

第二

    {
            "rows": [
                    {
                            "name": "Richard",
                            "bank_balance": 3000,
                            "assets_worth": 4000,
                            "total": 7000
                    },
                    {
                            "name": "John",
                            "bank_balance": 1000,
                            "assets_worth": 2000,
                            "total": 3000
                    }
            ],


            "grand_total": 
            {
                    "name": "Total",
                    "bank_balance":4000,
                    "assets_worth": 6000,
                    "total": 10000
            }    
    }

考虑到 REST 标准,哪一个更正确?

【问题讨论】:

    标签: json api rest format


    【解决方案1】:

    REST 只是一种用于设计网络应用程序的架构风格。它不会直接回答您关于数据结构的问题。

    我个人会采用第一种方法(只是没有总行),因为可以从行数据中轻松计算总计,结果如下:

    [
      {
        name: "Richard",
        bank_balance: 3000,
        assets_worth: 4000,
        total: 7000
      },
      {
        name: "John",
        bank_balance: 1000,
        assets_worth: 2000,
        total: 3000
      }
    ]
    

    我认为这里重要的设计原则是,您的 API 不应该对数据表示持固执己见。一些使用您的 API 的应用程序可能会选择以表格格式显示数据,而其他应用程序可能会选择其他一些表示形式。一个好的 API 能够很好地满足不同的应用程序(和用例)。

    【讨论】:

      猜你喜欢
      • 2013-07-20
      • 2019-12-03
      • 1970-01-01
      • 2018-09-22
      • 1970-01-01
      • 2020-11-08
      • 2019-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多