如果空值被包含在从REST API JSON响应? [关闭](Should null value

2019-08-18 03:31发布

我在设计和开发一个RESTful API的过程。 我采取务实,资源化的办法来API(面向资源,统一的接口,可寻址,但没有真正的HATEOAS)。 有一点我不知道,虽然是如何在物体接近零值。

我应该包括在API响应空值的字段?

例:

{
    "fieldA": "AAA",
    "fieldB": null
}

或者,我应该只是离开了这些领域完全如果系统对这些领域没有数据?

例:

{
    "fieldA": "AAA"
}

Answer 1:

有一个关于这个讨论最近在API-工艺 。 一般的共识是有可能的值的遗漏之间的语义差异,对夹杂物空值的。

如果要获得为您具体的使用情况下,没有语义值,那么我会说看你的目标消费者的API,并思考是否忽略值将导致他们的问题。



Answer 2:

没有明确的赢家。 而且因为没有,客户不应该在技术上依赖于这方面有任何约定,客户不应该期望任何形状。

  • 去除空值,以减少带宽使用通常没有道理的(除非空场的数量大,并且明显带宽遭受)。
  • 消除空值,让人类的读者更容易地看到实际值是不常用理由,API不是人机界面
  • 保持空值,让人类的读者更容易地看到文件结构是不常用理由,API不是人机界面和API响应不API文档
  • 保持空值,让脏客户端解析以特定方式的JSON通常没有道理的,客户应干净写成宽容读者
  • 保持空值只有在相应的创建方法(POST / PUT)需要空的明确的传递将是有意义的,但通常是难以实现
  • 保持输出相同的创建过程中请求可能有意义当每个文件都有自己拥有的客户端,但通常是难以实现
  • 特殊情况下要考虑的是通过类似引发部分反应?fields=foo,bar ,回访空的所有其他领域似乎有点反直觉


文章来源: Should null values be included in JSON responses from a REST API? [closed]
标签: json api rest