En ciertas ocasiones, al desarrollar una nueva comunicación entre APIs, es útil poder hacer logging de las peticiones y respuestas que se realizan desde un cliente REST.
En esta página se enumeran algunas alternativas para pintar esta información en el log de nuestra aplicación en Spring-Boot.
| Info |
|---|
Esta página es la equivalente en Spring a la WiKi Logear Mensajes In/OUT en FundeWeb. |
Guía detallada
A continuación se detallan las distintas configuraciones que permiten realizar el logging de peticiones y respuestas en clientes REST.
1.Logging básico con RestTemplate
Es muy fácil de configurar pero proporciona poca información:
- No aparecen las cabeceras
- No aparece el body de la respuesta.
Configuración:
Añadir en el fichero application.properties:
| Bloque de código |
|---|
##Configuración RestTemplate para logging básico de request y response en clientes
|
Guía detallada
1.Logging básico con RestTemplate
...
logging.level.org.springframework.web.client.RestTemplate=DEBUG |
Cliente con RestTemplate:
| Bloque de código | ||
|---|---|---|
| ||
final RestTemplate plantilla = new RestTemplate(); final HttpHeaders headers = new HttpHeaders(); headers.set( "HeaderCabecera-test", "valueValor de test" ); headers.set( "OtherCabecera-Headertest2", "othervalueValor de test 2" ); final HttpEntity<String> entity = new HttpEntity<>( "body movin'Body de test", headers ); final String url = "https://micampusdesafundewebjsshowcasedesa.um.es/consultaexpedientes/restapi/v1.0/privatepublic/test/CS"; final ResponseEntity<String> response = plantilla.exchange( url, HttpMethod.GET, entity, String.class ); |
Ejemplo de log de petición:
| Bloque de código | ||
|---|---|---|
| ||
13-05-2021 13:25:44.165 DEBUG 12864 --- [nio-8080-exec-1] o.s.w.c.RestTemplate : HTTP GET https://micampusdesafundewebjsshowcasedesa.um.es/consultaexpedientes/restapi/v1.0/privatepublic/test/CS 13-05-2021 13:25:44.166 DEBUG 12864 --- [nio-8080-exec-1] o.s.w.c.RestTemplate : Accept=[text/plain, application/json, application/*+json, */*] 13-05-2021 13:25:44.166 DEBUG 12864 --- [nio-8080-exec-1] o.s.w.c.RestTemplate : Writing [body movin'Body de test] with org.springframework.http.converter.StringHttpMessageConverter 13-05-2021 13:25:44.197 DEBUG 12864 --- [nio-8080-exec-1] o.s.w.c.RestTemplate : Response 200 OK 13-05-2021 13:25:44.197 DEBUG 12864 --- [nio-8080-exec-1] o.s.w.c.RestTemplate : Reading to [java.lang.String] as "application/json" |
...
2.Logging completo con Apache HttpComponents.
| Bloque de código | ||
|---|---|---|
| ||
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> </dependency> |
...