2015-09-07 32 views
0

我們正在面臨與使路徑參數可選有關的問題。@PathParam註釋中的可選參數

原始URL /expire/{token}

我們正在試圖做的是對的URL相同的服務工作的下方。

1. /expire/{token} 
    2. /expire 

Ex:- @Path("/expire/{token}") 

我們已經應用了SO的其他解決方案,但目前還沒有運氣。

回答

4

從邏輯上講,讓它成爲可選項似乎沒有意義。你的URI應該處理它應該做的請求的類型。但是,我偶然發現一篇文章,使@PathParam成爲可選項,並且使用正則表達式進行小型黑客攻擊。

http://www.nakov.com/blog/2009/07/15/jax-rs-path-pathparam-and-optional-parameters/

我會用具有控制器單獨的終結點方法,其中可以通過可選的參數調用你的服務去。

+0

它根據REST意義!/expire/{token} 2./expire ..可以給出一個令牌列表 – unclescrouge

11

什麼增加,只有標註的另一種方法:

@Path("/expire") 

而且讓這個方法傳遞一個空值到原來的方法。

0

我們可以使用正則表達式,

"@Path("/add/{a:([0-9.]*)}/{b:([0-9.]*)}{p:/?}{c:([0-9.]*)}")" 

此路徑可以是

add/2/3 
add/2/3/4 

我的情況下,我使用正則表達式只允許數字