是否有任何方式支持X-HTTP-Method-Override请求标头 (自动/透明地)在RESTeasy中?
这会 使支持无法发送PUT / DELETE请求的客户端变得更加容易。
是的,重写POST不太理想,但我认为Google的惯例 使用X-HTTP-Method-Override是一种合理/方便的解决方法。
如果RESTeasy 可以使用X-HTTP-Method-Override标头调度POST请求 自动它将节省大量时间。我认为泽西岛只是添加了一些东 像这样通过过滤方法,但我更喜欢坚持使用RESTeasy。
答案 0 :(得分:5)
最近我遇到了同样的问题,我找到的最佳解决方案是:
@Provider
@PreMatching
public class OverrideHttpMethodFilter implements ContainerRequestFilter {
@Override
public void filter(ContainerRequestContext requestContext)
throws IOException {
String receivedMethod = requestContext.getMethod();
String methodFromHeader = requestContext.getHeaderString("X-HTTP-Method-Override");
if (receivedMethod != null && !receivedMethod.equals(methodFromHeader)) {
requestContext.setMethod(methodFromHeader);
}
}
}
答案 1 :(得分:3)
在RESTeasy处理中,使用拦截器支持头文件,Reference Guide中对此进行了描述。
你想要的,可能是一个截取调用的PreProcessInterceptor,查找标题并根据需要更改方法字符串/重定向。