假设我有一个 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/