javascript - REST API 最佳实践?返回空对象与无对象

标签 javascript node.js api rest backend

假设我有一个 API 可以返回用户钱包余额和即将到期的钱包交易列表

response = {
   user_balance: 20
   expiring_credits : [
     {object 1 }
     {object 2}
   ]
}
如果用户没有任何到期交易,我们可以通过 2 种方式格式化 respose
选项 1
 response = {
   user_balance: 20
 }
选项 2
  response = {
    user_balance: 20
    expiring_credits : []
  }
哪个是理想的选择或最佳实践?为什么?寻找一些专家的见解。非常感谢。

最佳答案

您返回的数据应反射(reflect)所请求数据的形状。如果他们正在询问用户的信息,并且其中包括一对一的用户余额和一对多的到期信用,您应该包括这些关系。如果没有要包含的内容,如果是一对一的,则特别用 null 调用它,让开发人员知道“这里缺少数据”,如果是一对多,则返回一个空数组,如没有从属记录,但有一个主记录。
一个示例端点:

/user/[id]/credits
GET
id: the user's id
{
  user_balance: null | number, // o:o
  expiring_credits: credits[] // o:m
}
这样,消费开发人员的数据形状总是相同的,他们不必担心返回对象上不存在顶级键。它会一直存在,并且总是与返回的类型保持一致。
如果存在,它将是这种类型。如果它是一个数组,它将永远是一个数组。这让人们可以对数据形状进行编码,而不是对数据形状的可能性进行编码。

关于javascript - REST API 最佳实践?返回空对象与无对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67252360/

相关文章:

javascript在窗口对象上调用带有参数的函数

javascript - 作为参数传递时函数不起作用

web-services - 语音识别(网络)服务?

swift - 访问 token 的逻辑

javascript - React/Redux - 组件状态未更新

javascript - Ajax调用: Monitor if it is taking long time

node.js - amqplib - 如何安全地检查队列是否存在

node.js - 找不到 Node 模块 'nw.gui'

json - 在 NodeJS 中通过 HTTP 请求获取 JSON

javascript - jquery/js : script not updating attribute after input value is changed