我正在设计和开发一个RESTful API。我对API采取了一种务实的、面向资源的方法(面向资源、统一接口、可寻址性,但没有真正的HATEOAS)。但是,我不确定的一点是如何处理对象中的空值。
我应该在API响应中包含带空值的字段吗?
示例:
{
"fieldA": "AAA",
"fieldB": null
}或者,如果系统没有这些字段的数据,我应该完全省略这些字段吗?
示例:
{
"fieldA": "AAA"
}发布于 2013-03-28 16:27:34
最近在API-Craft上对此进行了讨论。普遍的共识是,省略一个值与包含一个空值之间可能存在语义上的区别。
如果您的特定用例没有获得语义值,那么我要说的是查看API的目标使用者,并考虑忽略该值是否会给他们带来问题。
发布于 2018-05-21 05:54:23
没有明显的赢家。由于没有,客户永远不应该在技术上依赖于这方面的任何约定,客户不应该期望这两种形状。
?fields=foo,bar之类的东西触发的部分响应,其中返回所有其他字段的空值似乎有点违背直觉。https://stackoverflow.com/questions/15686995
复制相似问题