如何获取被调用方法resteasy的url

How to get the url of called method resteasy

我用 Restaeasy (java) 制作了一个 Rest 服务,它必须 return 与被调用的 URL 相同,但有一个新字符串

示例呼叫服务:

Post => mybase/myservice/somewrite 和一些 JSON
|响应 => mybase/myservice/somewrite/123456

所以我想用一种通用逻辑制作 mybase/myservice/somewrite url,因为如果我输入 String returnURL="mybase/myservice/somewrite"; 并且我改变了例如mybase的名字反响不好

我想要这样的东西

someLogicService(JSON);
id=getId();
URL=getContextCallURL();
return URL+\/+id;

但是我不知道这是否可行,更不知道怎么做

我找到了我的问题的答案,我用 @context 将 httpRequest 注入我的函数并调用 absolutPath :

 @POST
 @Path("/")
 @Consumes(MediaType.APPLICATION_JSON)
 public Response makeContact(Contact contact, @Context HttpRequest request)  {
        return Response.ok().header("location", request.getUri().getAbsolutePath().getPath() + contactService.makeContact(contactJSON)).build();
    }

您还可以在资源中使用注释 Context 注入类型 UriInfo 的实例,如下所述:

@Context
private UriInfo uriInfo;

@POST
@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
public Response makeContact(Contact contact)  {
    String requestUri = uriInfo.getRequestUri();
    (...)
}

希望对你有帮助, 蒂埃里