选项1:返回范围内的所有整数列表对我来说似乎非常浪费。谁知道将来需要什么数量?如果您有过成千上万的产品可以订购,这可能会导致严重的问题。
选项3:当输入需要人为可读或可编辑时,可解析格式非常有用。一个很好的例子是MS Word中的打印对话框;用户可以选择打印“1,2,7,9,11”或“5-15”等页面,但解析引入了错误的全新可能性。即使在简单的例子“1-200”中,“ - ”可能被解释为给出“-200”或类似的减号。如果界面是机器对机器,我总是喜欢清晰的语义界面。通过明确定义的接口(例如参数“rangeFrom”和“rangeTo”),解释的歧义性被消除,唯一需要解决的问题是实现。我不知道你的客户是什么,但用任何语言产生一个从1到200的整数列表应该是相当微不足道的。
我肯定会选择2:它是一个明确的界面。它很容易构建,并且在线路上高效。
根据您希望成为未来的方式,您可以考虑选择选项2并伪造一种超载。所以今天你会保持它的简单,只是返回以下内容:
{
"listType": "range",
"rangeFrom": 1,
"rangeTo": 200
}
客户应检查“listType”返回值,就目前而言,它总是希望它是“范围”。但将来你可以添加其他类型。对于axample
{
"listType": "increment",
"rangeFrom": 2,
"rangeto": 20,
"inc": 2
}
// Interpreted by client as:
// 2, 4, 6, 8, 10, 12, 14, 16, 18, 20
{
"listType": "valuelist",
"values": [1, 2, 5, 20]
}
// Interpreted by client as:
// 1, 2, 5, 20
这将是今天的简单而有效的,但离开你打开,如果新的要求稍后在不破坏兼容性轻松扩展。
你能给更多的信息:什么数量?可以有1,1,200,1,1,0,0,0吗?或者它是1,2,3,4(停止)? – BlueChippy 2012-02-16 07:04:49
我更新了问题,它只能是1,2,3,4,5 ....,maxquantity – Vimvq1987 2012-02-16 07:06:34
带宽是一个大问题吗?我的意思是你正在查看可能700字节的数据为列表1,2,3,...,200 – 2012-02-16 07:08:53