您是否应该在API中为布尔类型返回null?

时间:2015-07-04 21:28:46

标签: json boolean

我有一个用户的API响应,如下所示:

{
   "id": 4,
   "name": "Bob",
   "favorite_color": "red",
   "subscribed_to_newsletter": true
}

但是,如果用户尚未注册新闻稿,则数据库中的值为空。因此,查询该用户可能如下所示:

{
   "id": 4,
   "name": "Bob",
   "favorite_color": "red",
   "subscribed_to_newsletter": null
}

我最初的反应是在数据库中设置subscribed_to_newsletter字段的默认false值。

但是,在注册时,我们不会询问用户是否要订阅时事通讯。所以,我认为保持null表示我们还没有收到该字段的值。然后,一旦他们接受或拒绝注册,我就可以设置值。

但是,我想知道在API中将布尔值作为null发送是不好的做法,因为客户端可能期望是真/假,因此会导致客户端出现错误。

任何人都有这方面的经验吗?

2 个答案:

答案 0 :(得分:1)

默认情况下不发送null,除非您正确记录它。在那种情况下,它会没事的。您提供了API的文档,对吗?

答案 1 :(得分:0)

对我来说,“null”看起来你从来没有问过用户是否想要订阅só当你发现它要求de用户并将true或false设置为你的数据库....下次你只会找到真/假值...如果不希望/可以向用户询问,则设置为默认值。

if(subscribed_to_newsletter iquals null) {    SETsubscribed_to_newsletter(假)    要么    询问用户并设定价值...... } 其他   ...

但更好的是阅读API文档并确保是否可以返回null。 祝你好运!