Boa tarde!
Como logar os JSONs que chegam em um web service rest feito em Spring (@RestController)?
Obrigado!
Boa tarde!
Como logar os JSONs que chegam em um web service rest feito em Spring (@RestController)?
Obrigado!
Nunca tive essa necessidade, com o teu post, pensei que só um filtro salvaria a pátria, afinal, quando o método é acionado, o objeto já foi serializado.
Então, eis que pesquiso e voilà
Darlan
Adaptei sua sugestão, consegui pegar o JSON da request. Compartilho abaixo:
@Component
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// some init code
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
try {
HttpServletRequest requestCacheWrapperObject = new ContentCachingRequestWrapper(
(HttpServletRequest) request);
requestCacheWrapperObject.getParameterMap();
System.out.println("json = " + convert(requestCacheWrapperObject.getInputStream(), Charset.defaultCharset()));
chain.doFilter(request, response);
} catch (JsonMappingException e) {
e.printStackTrace();
}
}
public String convert(InputStream inputStream, Charset charset) throws IOException {
try (BufferedReader br = new BufferedReader(new InputStreamReader(inputStream, charset))) {
return br.lines().collect(Collectors.joining(System.lineSeparator()));
}
}
@Override
public void destroy() {
// some code to be run at destruction
}
}