当属性在 REST api 中没有值时应该返回什么?

Edi*_*uza 4 javascript api rest node.js express

当没有为属性分配值时,是否应该将其返回为 null,还是 REST API 应该完全跳过此类属性?

考虑一个具有名字和姓氏的用户对象的示例。(在下面的示例中,last_name 不必是专门的空字符串。考虑它从未从最终用户收到。)

{
   first_name: "Bob",
   last_name: "",
}
Run Code Online (Sandbox Code Playgroud)

现在,由于客户端知道用户模式,是否应该返回last_name或只是从响应中删除,以便客户端可以自动设置默认值。(即空字符串""

如果必须返回 null,那么当它在某些情况下具有特殊含义时返回 null 是否有意义。(即null表示某些内容且与 不同undefined

小智 5

我个人对此的看法是,如果没有数据存在,则跳过/省略该字段。如果您必须在其中发送数百 MB,JSON那么这将是一个很大的数字。

另外不要忘记,您的客户应该始终牢记并检查来自 API 的数据。在许多编程语言中,检查键数组中是否存在键是最容易的。

请记住,您应该验证来自 API 的信息类型(int、string、object 等),如果响应中不存在密钥,它将保存该部分。

如果您万一需要一个具有空值的密钥(如果 API 响应中不存在),则上述内容并不意味着您在验证 API 响应时不能添加它。您仍然需要LESS计算一些东西,从而提高效率。