Skip to content

Log requests being made using RestTemplate clients to AWS DynamoDb

License

Notifications You must be signed in to change notification settings

actigence/resttemplate-request-logger

Repository files navigation

RestTemplate Request Logger

Java CI with Maven

This package can be used to log request and response details of API calls made using Spring RestTemplates. The logs are stored in AWS DynamoDB using API Access Tracker (Backend). Please visit API Access Tracker (Backend) to setup AWS stack before using this package for logging your requests.

This package, provides a simple RestTemplate interceptor, to send request and response data to AWS stack using AWS SQS.

Usage

  1. Setup your AWS stack as shown in API Access Tracker (Backend).

  2. Include this package into your build:

  • For Maven builds add below dependency to your pom.xml.
<dependency>
    <groupId>com.actigence</groupId>
    <artifactId>resttemplate-request-logger</artifactId>
    <version>0.0.1</version>
</dependency>
  • For Gradle add below dependency to your build.gradle file
compile group: 'com.actigence', name: 'resttemplate-request-logger', version: '0.0.1'
  1. To add RestTemplate interceptor to your project, create the RestTemplate bean as shown below.
@Configuration
public class RestTemplateConfig {

    @Bean
    public RestTemplate restTemplate() {
        ClientHttpRequestFactory factory = new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory());
        RestTemplate restTemplate = new RestTemplate(factory);
        restTemplate.setInterceptors(singletonList(new OutboundRequestTrackingInterceptor()));
        return restTemplate;
    }
}
  1. Now whenever you access any URL using this RestTemplate bean. The request will be seamlessly intercepted by the OutboundRequestTrackingInterceptor class and an event will be published to the AWS SQS for storing that request and response.
Quote quote = restTemplate.getForObject(
        "https://gturnquist-quoters.cfapps.io/api/random", Quote.class);
  1. See resttemplate-request-logger-demo for full example code.

Releases

No releases published

Packages

No packages published

Languages