Resteasy 委托路由到另一条路由

Resteasy delegate route to another route

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

也就是说,从 RS 中的方法开始:

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

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

}

委托将 return 与我向 api/bar 发出 HTTP GET 请求完全相同的响应,也就是说,将通过处理该路由的正确 RS , 理想情况下重新填充所有必要的请求信息 (headers, params, payload).

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

我从 docs/source 看到您有权访问的 org.jboss.resteasy.spi.HttpRequest 接口具有转发方法。

它需要一个字符串作为您的另一个端点的路径,但它不允许您更改方法类型(post 为 get)。但是话又说回来,您无权访问的 RequestDispatcher 转发方法也没有。您不能修改请求或响应。​​

参见here

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