2016-12-03 3 views
1

Я пытаюсь реализовать ETAG в моем springboot использовании ShallowEtagHeaderFilter:Как включить ETAGS в API CRUD в Spring Boot?

@Bean 
    public ShallowEtagHeaderFilter shallowEtagHeaderFilter() { 

     System.out.println(new ShallowEtagHeaderFilter()); 
     return new ShallowEtagHeaderFilter(); 
    } 

Я получил ETAG показано в заголовке, когда я делаю что-то вроде

curl -i -X POST localhost:8080/search/XLT 

, но я не могу видеть его больше, когда Я прошу источник с ETAG получил в предыдущей:

curl -i -X POST localhost:8080/search/XLT -H 'If-None-Match:"MY PREVIOUS REQ ETAG MD5" 

Также я не в состоянии видеть 304 Not Modified и любой другой RESPO NSE.

МОЙ Получ

//USER Get REQUEST 
@RequestMapping(value = "/user/{user_id}", method = RequestMethod.GET) 
public @ResponseBody String getReport(
     @PathVariable("user_id") String userid, 
     HttpServletRequest request, 
     HttpServletResponse response) { 

    //Adding request type to responseList 
    addResponse(true, "<HTTP-GET REQUEST>"); 

    //Call ProcessGetRequest which will return data fetched with that key 
    ProcessGetRequest(userid); 

    return displayResponseStatus(); 
} 

Есть ли что-то пропустил, что я должен делать? любая помощь будет оценена.

ответ

1

ShallowEtagHeaderFilter применяется только к запросам GET и HEAD, и это довольно грубый способ поддержки ETags.

В зависимости от того, как вы кодируете свою службу CRUD, весна supports higher-level features for such cases с ResponseEntity или WebRequest.

Смежные вопросы