目前我们正在设计一个系统,将JSON对象发送给注册的消费者。消费者可以注册他们想要接收的不同对象类型。目前我们正在设计JSON对象,这些对象将被注册的消费者消费。
我们看到有两种可能的方法来定义类型化的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"
}
}
{
"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对象,是否有一个最佳实践的方法?
如果你设置的是一个通用的applicationjson响应,那么我会选择你的选项#2.那个 "类型 "没有什么坏处,只能帮助澄清那个响应是什么。