Java 如何在所述API中找到RESTful API的URL

Java 如何在所述API中找到RESTful API的URL,java,url,rest,Java,Url,Rest,假设我有这个端点: @GET @Path("/{product}") @Produces(MediaType.APPLICATION_JSON) public String getProduct( @PathParam("product") final String product) { return createSignature(<<PLACE COMPLETE URL HERE>>); } @GET @路径(“/{product}”) @产

假设我有这个端点:

@GET
@Path("/{product}")
@Produces(MediaType.APPLICATION_JSON)
public String getProduct(
        @PathParam("product") final String product) {
    return createSignature(<<PLACE COMPLETE URL HERE>>);
}
@GET
@路径(“/{product}”)
@产生(MediaType.APPLICATION_JSON)
公共字符串获取产品(
@PathParam(“产品”)最终字符串(产品){
返回createSignature();
}

我如何知道从端点内部调用的完整URL,以便基于该URL创建签名?谢谢

您可以通过向方法添加
@Context-HttpServletRequest
作为参数来访问原始请求。然后,您可以访问希望对请求执行的任何操作。

您可以通过将
@Context-HttpServletRequest-request
作为参数添加到方法中来访问原始请求。然后,您可以访问您想对请求执行的任何操作。

有几种方法。 通常,您可以向方法中添加特殊参数,也可以向资源类中添加字段。特殊参数由类型(HttpServletRequest或UriInfo)识别,并应使用注释
@Context
进行标记

@StormBringerX已经提到,可以使用方法参数(+1)传递信息。我个人更喜欢将其添加为类的一个字段,因为我认为这更清晰,并且允许创建只接受应用程序级参数的方法

有几种方法。 通常,您可以向方法中添加特殊参数,也可以向资源类中添加字段。特殊参数由类型(HttpServletRequest或UriInfo)识别,并应使用注释
@Context
进行标记


@StormBringerX已经提到,可以使用方法参数(+1)传递信息。我个人更喜欢将其添加为类的一个字段,因为我认为这更清晰,并且允许创建只接受应用程序级参数的方法

是的;另外,UriInfo更适合于OPs问题,因为您可以从HttpServletRequest获得大量额外的内容。@StormBringerX感谢您的建议,但我希望端点尽可能干净。本页介绍了这两种方法。再次感谢!是的;另外,UriInfo更适合于OPs问题,因为您可以从HttpServletRequest获得大量额外的内容。@StormBringerX感谢您的建议,但我希望端点尽可能干净。本页介绍了这两种方法。再次感谢!