我想知道是否有办法委托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用户透明。
答案 0 :(得分:0)
我从文档/来源看到您有权访问的 org.jboss.resteasy.spi.HttpRequest 界面有一个转发方法。
它需要一个字符串,它将是您的另一个端点的路径,但它不允许您更改方法类型(发布到get)。但是,您再次访问的RequestDispatcher转发方法也没有。您不能修改请求或响应。
请参阅here:
所以你所能做的就是直接调用你的服务方法,或者使用HTTP客户端调用 foo 中的其他REST端点,然后将其传回客户端