我有一個REST服務,它允許人們將課程標題作爲查詢的一部分來獲取分數,但有時他們可能想要獲得一個組,如計算Calculus%爲Calc 1,2和3.提供開始選項或包含在REST查詢中的最佳方式
但是,給他們一個有意義的選項的最佳方法是什麼?
例如,我有的http://本地主機/ myrest /任何/所有/積分III
其中前兩個參數是學生證和一些等級類別。
我不認爲有的http://本地主機/ myrest /任何/所有/包含/積分III是一款很好用的話,我需要強制他們使用等於如果這是他們正在找。
另一種選擇是的http://本地主機/ myrest /任何/所有/演算%或的http://本地主機/ myrest /任何/所有/%計算器%是另一種選擇,但你已刪除可以輕鬆使用%作爲允許的字符。
因此,要在REST URL中提供額外的過濾選項,什麼是最好的(爲用戶定義爲最簡單/最直觀)的方式允許包含或開始。
我試圖避免命名參數,和您的例子可能有利於「開頭',但對'包含在'中什麼都不做。我們有超過18k個不同的課程,這是困難。我可能會被迫做「?startswith = ...」或「?contains = ...」,但似乎很混亂。 –
@James:是的,我同意執行startswith/contains/etc會很麻煩(不管它是在URI中還是作爲GET參數完成)。我上面提出的意思是作爲支持通配符的純搜索,因此是參數名稱。之所以我第一次詢問'/ myrest/any/any'是否默認給你一個主題列表,是因爲如果它是,那麼它應該是完美的RESTful,通過GET參數過濾/縮小結果集。從技術上來說,它與谷歌對google.com/search?q = lorem + ipsum的做法是一樣的。 – MicE
好的,現在我更好理解了,你的方法可能對過濾有用。謝謝。 –