在JSON响应中使用随机/可选属性被认为是不好的做法吗?

时间:2018-03-04 16:15:32

标签: javascript c# node.js mongodb rest

我目前正在开发Node / Express / MongoDB Restful Service。 现在,由于MongoDB没有"列",很容易发生同一端点的响应可以包含特定属性。 e.g。

# GET /users/1    
{"name": "Alexander", "nickname": "Alex"}

# GET /users/2
{"name": "Simon"}

虽然使用像JavaScript这样的弱类型语言来处理没有任何区别,但是我的一个同事在C#中实现了一个客户端,但在缺少属性时很难解析JSON字符串。

IMO,从API的角度来看,目前的方法更好,因为它会在服务器端产生更好的性能,更少的代码甚至流量。否则,我需要在每次添加属性时发送甚至运行迁移之前规范化对象。它也没有发送"虚拟"资源上甚至不存在的数据。

但另一方面,我也希望从客户的角度构建一个可靠的服务,并且#34;规范化"在客户端方面至少和服务器端一样糟糕。

Theres也是另一个用例,它在JS中运行良好但会导致C#出现问题并引发同样的问题:

# GET /users/1/holidays
{
    "2018-12-25": { "title": "Christmas" }, 
    "2019-01-01": { "title": "New Year" }
}

我采用这种方法自动阻止同一天的多个条目。但我能理解这是否真的被认为是不好的做法。

更新

由@ jfriend00评论,第二个例子并不那么方便。所以我不再使用它了。

0 个答案:

没有答案