RESTeasy和X-HTTP-Method-Override

A_J*_*A_J 4 java resteasy

在RESTeasy中是否有任何方式支持X-HTTP-Method-Override请求标头(自动/透明)?

这将使支持无法发送PUT/DELETE请求的客户端变得更加容易.

是的,重写POST不太理想,但我认为使用X-HTTP-Method-Override的Google约定是合理/方便的解决方法.

如果RESTeasy可以自动使用X-HTTP-Method-Override标头调度POST请求,那将节省大量时间.我认为Jersey只是通过过滤方法添加了这样的东西,但我更喜欢坚持使用RESTeasy.

ran*_*m86 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);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)


tve*_*eon 3

在 RESTeasy 中,通过使用拦截器来支持处理标头,这在参考指南中进行了描述。

您想要的可能是一个 PreProcessInterceptor,它拦截调用、查找标头并根据需要更改方法字符串/重定向。