【问题标题】:Best Practice Design typed JSON Objects最佳实践设计类型化 JSON 对象
【发布时间】:2020-05-15 14:05:26
【问题描述】:

目前我们正在设计一个将 JSON 对象发送给注册消费者的系统。消费者将能够注册他们想要接收的不同对象类型。目前我们正在设计注册消费者将使用的 JSON 对象。

正如我们所见,定义类型化 JSON 对象有两种可能的方法。

  1. 已设置或未设置某些属性的通用 JSON 对象:
{
  "timestamp": 1589448935,
  "customer_id": "123123123123",
  "message": {
    "title": "Desired Title",
    "text": "The Text of the Message",
  }
}
{
  "timestamp": 1589448935,
  "customer_id": "123123123123",
  "message": {
    "title": "Desired Title",
    "text": "The Text of the Message",
    "avatar": "http://avatar.io/avatar"
  }
}
  1. 每个 JSON 对象上的类型字段指定此对象来自哪个类型:
{
  "timestamp": 1589448935,
  "customer_id": "123123123123",
  "type": "simple_message",
  "message": {
    "title": "Title",
    "text": "Message",
  }
}
{
  "timestamp": 1589448935,
  "customer_id": "123123123123",
  "type": "avatar_message",
  "message": {
    "title": "Title",
    "text": "Message",
    "avatar": "http://www.avatar.io/avatar"
  }
}

从我们的角度来看,更通用的方法在我们的系统中会更容易处理,因为我们不需要处理多种类型,我们只需附加一个属性或将其保留即可。

从开发人员的角度来看,我可以想象一个类型字段可以帮助开发人员处理此类对象(例如将它们映射到对象)或打开类型字段以执行某些特定逻辑。

最后,对于我的问题 - 当我们想让消费者的生活尽可能轻松时,哪种风格是首选(最佳实践),为什么?是否有类型化 json 对象的最佳实践方法?

【问题讨论】:

    标签: json api rest


    【解决方案1】:

    如果您设置的是通用应用程序/json 响应,那么我会选择您的选项 #2。 这种“类型”并没有什么坏处,只能帮助澄清这种反应是什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-08
      • 1970-01-01
      • 1970-01-01
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      相关资源
      最近更新 更多