2011-11-01 87 views
0

我現在有看起來像這樣的.NET方法 - GetUsers(Filter filter)這是從客戶端發送SOAP請求調用。正如您可能猜到的那樣,它需要一堆過濾器並返回與這些過濾器匹配的用戶列表。過濾器不是太複雜,它們基本上只是從日期到日期,年齡,性別等等的集合,我在任何時候都有一套過濾器是靜態的。REST和篩選記錄

我想知道這樣做的RESTful方式了。我猜我會有一個Users資源。會不會像GET /Users?fromDate=11-1-2011&toDate=11-2-2011&age=&sex=M?有沒有辦法將它通過一個Filter而不必將其轉換爲個人屬性?

我消耗來自移動客戶端這個服務,所以我認爲實際上創建了一個過濾器的額外要求的開銷:POST filters是壞UX。即使我們這樣做,POST filters甚至意味着什麼?是否應該在數據庫中創建過濾器記錄?如果我的請求序列如下所示,服務器如何跟蹤剛創建的過濾器?

POST /filters -- returns a filter 
{ 
    "from-date" : "11-1-2011", 
    "to-date" : "11-2-2011", 
    "age" : "", 
    "sex" : "M" 
} 


GET /Users?filter=filter_id 

道歉,如果請求出現有點困惑。我是。

感謝,
Teja公司

回答

2

我們正在做這就像你有它 GET /用戶?FROM日期= 2011年11月1日& TODATE = 2011年11月2日&年齡= &性別= M

我們有9個查詢字符串值。

我看不出與

1

任何問題,我處理它的方式是我做一個POST含參數的身體,然後我返回重定向到一個GET。 GET URL看起來完全取決於服務器。如果你想將過濾器轉換成單獨的查詢參數,或者如果你想持久化一個過濾器,然後添加一個查詢參數指向保存的過濾器也沒關係。好處是你可以隨時改變主意,客戶不會在意。

而且,因爲你正在做一個讓你可以利用高速緩存的優勢,這應該足以彌補做額外的retquest。

+0

我下面,因爲響應工作..好感覺容易,只需傳遞請求參數,而不是創建/堅持一個篩選的資源和檢索它和所有。不過謝謝。 –