2010-11-01 41 views
0

是否可以使用可選的路徑變量定義路徑?RestEasy @Path帶正則表達式的問題

像下面的URI:

/應用/製造/ {使} /模型/ {模式} /年/ {每年} /里程/ {里程}/fuelType/{fuelType}/maxPrice/{maxprice }/transmission/{transmission}/engineSize/{engineSize}

URI可以由任意0個或多個參數組合組成?有沒有辦法說出所有這些路徑都是可選的?

歡呼聲。

回答

3
@Path("/make/{make}{model:(/model/[^/]+)?}{fuel : (/fuel/[^/]+)?}{gearbox : (/gearbox/[^/]+)?}/cars") 



app/{make:(/make/[^/]+)?}{model:(/model/[^/]+)?}{year:(/year/[^/]+)?}{mileage:(/mileage/[^/]+)?} 

我想出了上述的解決方法,但在我需要刪除路徑名的方法內工作。

3

爲什麼打擾使用路徑段?如果它們是可選參數,那麼它不能成爲真正的層次結構,爲什麼不使用查詢字符串參數。他們對這種類型的參數工作得更好。

+0

那麼需求文檔說,以及其他硬件以及使用相同的URI語法,所以我不能只是改變它。然而,你是對的,如果它是可選的,它通常應該進入查詢字符串參數。 – fmucar 2010-11-02 16:02:08

+0

@fmu超媒體約束的要點之一是服務器的URI結構應該是一個私有的實現細節。事實上,你有規範定義什麼URI應該看起來像意味着某人正在計劃編寫將構建這些URI的客戶端。這顯然是錯誤的。您現在面臨的任務是說服您的服務器框架處理它不適合的URI結構,這與它應該如何工作完全相反。我意識到自己正在向錯誤的人發泄,但無論如何它感覺良好:-) – 2010-11-02 18:55:38

+0

這是一個由第三方應用程序使用的休息應用程序。如果他們不知道URI,他們將如何使用它? – fmucar 2010-11-03 08:29:12