2012-02-01 16 views
4

在RESTeasy中是否有任何方式支持X-HTTP-Method-Override請求標頭 (自動/透明地)?RESTeasy和X-HTTP-Method-Override

這將 使支持無法發送PUT/DELETE請求的客戶端更容易。

是的,重寫POST並不理想,但我認爲使用X-HTTP-Method-Override的Google約定 是一種合理/方便的解決方法。

如果RESTeasy 可以自動調度帶有X-HTTP-Method-Override標頭 的POST請求,它將是一個很大的節省時間。我認爲澤西隊通過過濾方式添加了一些像這樣的 ,但我更願意堅持使用RESTeasy。

回答

3

在RESTeasy處理標頭中使用攔截器,這在Reference Guide中描述。

你想要什麼,可能是一個PreProcessInterceptor攔截調用,查找標題並根據需要更改方法字符串/重定向。

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); 
    } 
    } 
}