Resteasy代表路线到另一条路线

时间:2016-05-09 16:45:19

标签: java resteasy

我想知道是否有办法委托RestEasy中的另一条路线。

即,在RS内部的方法中开始:

@Path("/api")
public class Foo {

    @POST
    @Path("/foo")
    public Response foo() {
        return RestEasy.delegate("GET", "/api/bar");
    }

}

代理会返回完全相同的响应,就像我向GET发出HTTP api/bar请求一样,也就是说,将通过正确的RS来处理该路由,理想情况下重新填充所有必要的请求信息(标题,参数,有效载荷)。

我不想要HTTP重定向,因为我希望它对api用户透明。

1 个答案:

答案 0 :(得分:0)

我从文档/来源看到您有权访问的 org.jboss.resteasy.spi.HttpRequest 界面有一个转发方法。

它需要一个字符串,它将是您的另一个端点的路径,但它不允许您更改方法类型(发布到get)。但是,您再次访问的RequestDispatcher转发方法也没有。您不能修改请求或响应。​​

请参阅here

所以你所能做的就是直接调用你的服务方法,或者使用HTTP客户端调用 foo 中的其他REST端点,然后将其传回客户端