Как получить необработанное сообщение JSON из запроса и код состояния HTTP из ответа - PullRequest
0 голосов
/ 21 апреля 2020

Я занимаюсь разработкой приложения Spring Boot. У нас есть требование хранить необработанный запрос JSON и код ответа HTTP для хранения в базе данных как часть обработки запроса.

Мы можем перехватить запрос в классе, который расширяет RequestBodyAdviceAdapter. Этот класс реализовал метод afterBodyRead для получения тела запроса. К сожалению, нет способа получить необработанный запрос JSON в этом методе.

Аналогично у нас есть другой класс, который реализовал ResponseBodyAdvice для перехвата ответа. В методе beforeBodyWrite код состояния ответа недоступен.

1 Ответ

0 голосов
/ 21 апреля 2020

Вы можете написать простой фильтр сервлетов:

@Component
public class JsonFilter implements Filter {

    @Override
    public void doFilter
      ServletRequest request, 
      ServletResponse response, 
      FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;

        // Log JSON request

        chain.doFilter(request, response);

        // Log JSON response and HTTP Status code
    }

    // other methods 
}

Подробнее о фильтрах и Spring Boot здесь: https://www.baeldung.com/spring-boot-add-filter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...