Backend

Spring

Cliente HTTP

Spring incluye un cliente HTTP (RestTemplate) que puede utilizarse para llamar a otros sistemas externos necesarios para completar la lógica de la aplicación. Por ejemplo, llamar a un API REST de un proveedor para hacer un pedido automáticamente en caso de que detectemos que nuestro stock está bajo.

try {
    HttpHeaders headers = new HttpHeaders();
    headers.set("Cabecera", "Valor");
    ResponseEntity<ObjetoRespuesta> respuesta = new RestTemplate().exchange(
        "https://...url...", HttpMethod.GET/POST/PUT/etc,
        new HttpEntity<>(new ObjetoCuerpo(), headers),
        ObjetoRespuesta.class
    );
    ObjetoRespuesta cuerpoRespuesta = respuesta.getBody();
} catch (HttpStatusCodeException e) {
    logger.error("Error {} en la respuesta", e.getStatusCode());
} catch (Exception e) {
    logger.error("Error inesperado en la llamada del API", e);
}

❓ Ejercicio: Crea una tarea nueva en la clase TareasProgramadas que se ejecute una vez cada 5 minutos para imprimir en el log de la aplicación el último comic de XKCD llamando a su API, sólo si éste ha cambiado.