簡體   English   中英

在Apache Wink中聲明可選命名路徑參數的最佳方法是什么

[英]What is the best way to declare optional named path parameters in Apache Wink

使用Apache Wink在REST路徑中定義可選命名參數的最佳方法是什么?

現在我正在使用這樣的東西:

/items{sep: (?)}{id: (.*)}")

用於匹配請求,例如:

/items/123
/items/
/items

這樣我就可以捕獲干凈的{id}

另一種選擇是:

/items{id: (/?/[^/]+?)}

但是{id}將包含/字符,並且需要清除。

我在我的(µ)Micro框架中使用Wink,並計划堅持使用它,建議其他/更好(?)相似的框架目前無法回答此問題。

謝謝!
-弗洛林

這可能有點麻煩,不知道,也許這不是比您的解決方案更好的解決方案(我不知道您的要求),但是這就是我的方法。 我的資源類的注釋為'@Path(“ / db”)',然后為每個受支持的目錄級別提供連續的方法,即,由於REST基於URL,因此必須將'/'字符視為目錄定界符。

@Path("{id}")
@GET
public Response getJson( @PathParam("id") String id )
{  
    String path = id;
    // TODO
}

處理“ db / items”,並且

@Path("{id1}/{id2}")
@GET
public Response getJson( 
        @PathParam("id1") String id,
        @PathParam("id2") String id2 )
{
    String path = id1 + '/' + id2;
    // TODO
}

處理“ db / items / 123”,並且

@Path("{id1}/{id2}/{id3}")
@GET
public Response getJson( 
        @PathParam("id1") String id1, 
        @PathParam("id2") String id2, 
        @PathParam("id3") String id3 )
{ 
    String path = id1 + '/' + id2 + '/' + id3;
    // TODO
}

處理“ db / items / 123/456”。

但是您可以看到,在較長的路徑上,這很快變得很麻煩,而且我還沒有弄清楚如何處理n深度路徑( 有人嗎? )。 希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM