我已經通過這個 How best to design a REST API with multiple filters?REST Web服務 - 獲取,但對多個對象
了這確實幫助時,你有說3個或4個過濾條件,您可以容納在查詢字符串。
但我們來看一下這個例子 你想獲得關於某個startdate和enddate之間20個電話號碼的詳細的電話號碼。 現在我確實同意,理想情況下應建議對每個號碼進行個別查詢,然後在客戶端對所有數據進行整理。
但是,對於某些Live系統來說,這將意味着在交換機或cdr數據庫上進行20輪查詢。這是20個請求 - 響應週期加上客戶端必須根據時間重新整理和排序。在數據庫級別,它將是一個簡單的單個查詢,它可以返回一個有序數據並將其轉換回客戶端可以嵌入到系統中的REST XML響應。
如果我們要使用GET,查詢字符串會變得非常混亂並且也有限制。 任何建議來解決這個問題。 當然,我們可以發送POST請求,其中包含所有數字的xml,但這是違反REST Get原則的。
謝謝。我假定共享緩存是指客戶端查詢的臨時數據存儲區,並由主Live服務器/交換機定期更新,以便服務器僅將數據輸出到中間緩存並且從不查詢。雖然緩存可以儘可能查詢。但是你是否說要一次發送一個數字的查詢,併發送20個20個請求的請求,但是這些查詢是針對臨時數據存儲區運行的? – Soumya 2012-07-19 13:30:12
@Soumya舉個例子,你寫的是什麼。或者如果客戶A提出20個查詢,並且通過協議,這些查詢有效期爲48小時。這20個查詢在中間件緩存上共享以供所有客戶端使用。如何實施這個解決方案取決於你 - 我所說的是,這是一個符合REST設置的限制的解決方案。 – Anders 2012-07-19 13:42:36
謝謝。我也通過這個http:// stackoverflow。com/questions/6127507 /處理多個參數-u-uri-restfully-in-java。然而,在我的情況下,建立一箇中間緩存並不是一個真正的選擇,我們已經有一個我們正在查詢的系統。唯一不同之處在於它在用於任何請求的XML請求POST請求之前,包括獲取請求。所以我們沒有任何麻煩。但是,現在我們正在嘗試遷移到基於REST的服務,並且遇到與REST GET原則衝突的問題。 – Soumya 2012-07-22 08:32:55