假设我有这个端点:
@GET
@Path("/{product}")
@Produces(MediaType.APPLICATION_JSON)
public String getProduct(
@PathParam("product") final String product) {
return createSignature(<<PLACE COMPLETE URL HERE>>);
}
我如何知道从端点内部调用的完整 URL,以便基于它创建签名?谢谢
@Context HttpServletRequest request
您可以通过将参数添加到您的方法来访问原始请求。然后,您可以访问您想要对请求执行的任何操作。
有几种方法。通常,您可以向资源类的方法或字段添加特殊参数。特殊参数由类型(HttpServletRequest 或 UriInfo)识别,应使用 annotaiton 进行标记@Context
。
@StormBringerX 已经提到可以使用方法参数(+1)传递信息。我个人更喜欢将其添加为您的类的一个字段,因为我认为这更清晰,并且允许创建仅接受应用程序级参数的方法。