最佳做法设计类型化的 JSON 对象



目前我们正在设计一个将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 响应,那么我会选择您的选项 #2。 这种"类型"并没有什么坏处,只能帮助澄清这种反应是什么。

最新更新