2013-04-02 81 views
0

說我有這個端點:如何找到一個RESTful API的網址中說,API

@GET 
@Path("/{product}") 
@Produces(MediaType.APPLICATION_JSON) 
public String getProduct(
     @PathParam("product") final String product) { 
    return createSignature(<<PLACE COMPLETE URL HERE>>); 
} 

我怎麼能知道正在從端點中調用,以完整的URL可能創建基於這個簽名?謝謝

回答

2

有幾種方法。 通常,您可以將特殊參數添加到您的資源類的方法或字段中。特殊參數通過類型(HttpServletRequest或UriInfo)進行識別,並應使用註釋@Context進行標記。

@StormBringerX已經提到可以使用方法參數(+1)傳遞信息。我個人更喜歡把它作爲你的類的一個字段添加,因爲我認爲這更清晰,並且允許創建只接受應用程序級參數的方法。

+0

確實;另外UriInfo更適合OPs問題,因爲您可以通過HttpServletRequest獲得大量額外的東西。 – James

+0

@AlexR我添加該領域,它的工作。謝謝! – avillagomez

+0

@StormBringerX感謝您的建議,但我寧願讓端點儘可能乾淨。 – avillagomez

2

您可以通過將@Context HttpServletRequest request作爲參數添加到您的方法來訪問原始請求。然後您可以訪問任何您想要處理的請求。