Im通過使用Sprint MVC 4.0框架公開REST服務,並且我嘗試遵循對$查詢參數(如$ filter,$ search和$ orderBy)的Odata規範。其中每個都包含我需要解析的表達式,構建抽象語法樹並進行驗證。它們都以字符串形式檢索。使用Odata4j爲查詢參數表達式創建抽象語法樹
我不需要在OData的語法(http://docs.oasis-open.org/odata/odata/v4.0/cos01/abnf/odata-abnf-construction-rules.txt)中定義的所有建築,我只挑那些有關我的使用情況下(極少數確實)中的那些
我想就怎麼有些尖以簡單的方式解析和構建抽象樹,如果Odata4j可能被用作實用程序庫來爲我完成這項工作?我想避免將大量新的依賴拖到odata4j,因爲我只會使用一小段代碼。
湯姆,這聽起來像我正在尋找的東西。你有沒有可以分享的代碼? –
我相信你可以在這裏看到模式並自己完成它。 String queryString = uri.substring(uri.indexOf('?')+ 1); (String segment:queryString.split(「&」)) \t String [] paramPair = segment.split(「=」); \t String name = paramPair [0] .trim(); \t String value = paramPair [1] .trim(); \t if(name.equals(OPTION_SELECT)){ \t \t select = OptionsQueryParser.parseSelect(value); \t} else if(name.equals(OPTION_FILTER)){ \t \t filter = OptionsQueryParser.parseFilter(value); \t} else if(name.equals(... – Tom
謝謝,湯姆。是的,這很簡單。現在我正在嘗試做最後一部分答案:走過濾器AST構建我的查詢。 –