我正在尝试找出格式化API返回的用户JSON的最佳方法。这是基本对象:
user {
name: 'john',
email: 'john@example.com',
signed_up: '12-12-2012',
}
如何将用户的高级计划功能添加到JSON?用户可以是Free
,也可以是Pro
或Business
。问题是,Pro
和Business
都包含一个对象,其中包含有关该计划的更多信息,而Free
计划则不包含任何内容。
是否可以为计划返回一个字符串(如果它是Free
)和一个对象,以防它被支付?或者我应该避免使用不同的返回类型?
答案 0 :(得分:1)
您可以格式化您的回复,如下所示。如果溢价为Pro
或Business
,则furtherInfo
对象将包含更多信息,否则如果Free
,则response
不应具有进一步的信息。
response: {
user: {
name: 'john',
email: 'john@example.com',
signed_up: '12-12-2012',
premium: 'Pro'
},
furtherInfo: {
attribute1: 'value1',
....
attributeN: 'valueN'
}
}
或强>
response: {
user: {
name: 'john',
email: 'john@example.com',
signed_up: '12-12-2012',
premium: 'Free'
}
}
答案 1 :(得分:1)
我最终采用以下格式:
免费用户:
response: {
user: {
name: 'john',
email: 'john@example.com',
signed_up: '12-12-2012',
plan: {
name: 'Free',
billing_period: null
price: null
}
},
}
高级用户:
response: {
user: {
name: 'john',
email: 'john@example.com',
signed_up: '12-12-2012',
plan: {
name: 'Premium',
billing_period: 12
price: 299
}
},
}