Вам может понадобиться просто создать шаблон. Это не так сложно. Вы можете получить доступ к классу и методу ресурса (из введенного ResourceInfo
) и просто использовать методы UriBuilder
. У него есть path()
методы, которые принимают Class
и Method
, и он создаст Uri для вас на основе аннотаций @Path
этих объектов. Тогда просто получите шаблон с UriBuilder#toTemplate()
Например
public class UriTestingFilter implements ContainerRequestFilter {
@Context
private ResourceInfo resourceInfo;
@Override
public void filter(ContainerRequestContext request) throws IOException {
UriInfo uriInfo = request.getUriInfo();
Class<?> resourceClass = resourceInfo.getResourceClass();
Method resourceMethod = resourceInfo.getResourceMethod();
UriBuilder partialUriBuilder = UriBuilder.fromResource(resourceClass)
.path(resourceMethod);
String partialUri = partialUriBuilder.toTemplate();
URI baseUri = uriInfo.getBaseUri();
UriBuilder fullUriBuilder = UriBuilder.fromUri(baseUri)
.path(resourceClass)
.path(resourceMethod);
String fullUri = fullUriBuilder.toTemplate();
}
}