RESTeasy и X-HTTP-Method-Override - PullRequest
       7

RESTeasy и X-HTTP-Method-Override

4 голосов
/ 01 февраля 2012

Есть ли способ, поддерживающий заголовок запроса X-HTTP-Method-Override (автоматически / прозрачно) в RESTeasy?

Это будет упростить поддержку клиентов, которые не могут отправлять запросы PUT / DELETE.

Да, переопределение POST не идеально, но я думаю, что соглашение Google о использование X-HTTP-Method-Override - разумный / удобный обходной путь.

Если RESTeasy может отправлять запросы POST с заголовком X-HTTP-Method-Override автоматически это сэкономит много времени. Я думаю, что Джерси только что добавил как с помощью фильтрации, но я бы предпочел придерживаться RESTeasy.

Ответы [ 2 ]

5 голосов
/ 29 ноября 2013

Недавно у меня была та же проблема, и лучшее решение, которое я нашел, это:

@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);
    }
  }
}
3 голосов
/ 16 февраля 2012

В RESTeasy обработка заголовков поддерживается с помощью перехватчиков, которые описаны в Справочном руководстве .

То, что вы хотите, - это, вероятно, PreProcessInterceptor, который перехватывает вызов, ищет заголовок и при необходимости изменяет строку метода / перенаправляет.

...