選項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