Merge pull request #1485 from amit1307/logging-api-gateway-1338
Add logging in API Gateway
This commit is contained in:
		@@ -23,11 +23,16 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
package com.iluwatar.api.gateway;
 | 
					package com.iluwatar.api.gateway;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import static org.slf4j.LoggerFactory.getLogger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
import java.net.URI;
 | 
					import java.net.URI;
 | 
				
			||||||
import java.net.http.HttpClient;
 | 
					import java.net.http.HttpClient;
 | 
				
			||||||
import java.net.http.HttpRequest;
 | 
					import java.net.http.HttpRequest;
 | 
				
			||||||
 | 
					import java.net.http.HttpResponse;
 | 
				
			||||||
import java.net.http.HttpResponse.BodyHandlers;
 | 
					import java.net.http.HttpResponse.BodyHandlers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.slf4j.Logger;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -35,6 +40,8 @@ import org.springframework.stereotype.Component;
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
@Component
 | 
					@Component
 | 
				
			||||||
public class ImageClientImpl implements ImageClient {
 | 
					public class ImageClientImpl implements ImageClient {
 | 
				
			||||||
 | 
					  private static final Logger LOGGER = getLogger(ImageClientImpl.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /**
 | 
					  /**
 | 
				
			||||||
   * Makes a simple HTTP Get request to the Image microservice.
 | 
					   * Makes a simple HTTP Get request to the Image microservice.
 | 
				
			||||||
   *
 | 
					   *
 | 
				
			||||||
@@ -49,12 +56,26 @@ public class ImageClientImpl implements ImageClient {
 | 
				
			|||||||
        .build();
 | 
					        .build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
 | 
					      LOGGER.info("Sending request to fetch image path");
 | 
				
			||||||
      var httpResponse = httpClient.send(httpGet, BodyHandlers.ofString());
 | 
					      var httpResponse = httpClient.send(httpGet, BodyHandlers.ofString());
 | 
				
			||||||
 | 
					      logResponse(httpResponse);
 | 
				
			||||||
      return httpResponse.body();
 | 
					      return httpResponse.body();
 | 
				
			||||||
    } catch (IOException | InterruptedException e) {
 | 
					    } catch (IOException | InterruptedException e) {
 | 
				
			||||||
      e.printStackTrace();
 | 
					      LOGGER.error("Failure occurred while getting image path", e);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  private void logResponse(HttpResponse<String> httpResponse) {
 | 
				
			||||||
 | 
					    if (isSuccessResponse(httpResponse.statusCode())) {
 | 
				
			||||||
 | 
					      LOGGER.info("Image path received successfully");
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      LOGGER.warn("Image path request failed");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  private boolean isSuccessResponse(int responseCode) {
 | 
				
			||||||
 | 
					    return responseCode >= 200 && responseCode <= 299;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,18 +23,26 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
package com.iluwatar.api.gateway;
 | 
					package com.iluwatar.api.gateway;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import static org.slf4j.LoggerFactory.getLogger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
import java.net.URI;
 | 
					import java.net.URI;
 | 
				
			||||||
import java.net.http.HttpClient;
 | 
					import java.net.http.HttpClient;
 | 
				
			||||||
import java.net.http.HttpRequest;
 | 
					import java.net.http.HttpRequest;
 | 
				
			||||||
 | 
					import java.net.http.HttpResponse;
 | 
				
			||||||
import java.net.http.HttpResponse.BodyHandlers;
 | 
					import java.net.http.HttpResponse.BodyHandlers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.slf4j.Logger;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * An adapter to communicate with the Price microservice.
 | 
					 * An adapter to communicate with the Price microservice.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@Component
 | 
					@Component
 | 
				
			||||||
public class PriceClientImpl implements PriceClient {
 | 
					public class PriceClientImpl implements PriceClient {
 | 
				
			||||||
 | 
					  private static final Logger LOGGER = getLogger(PriceClientImpl.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /**
 | 
					  /**
 | 
				
			||||||
   * Makes a simple HTTP Get request to the Price microservice.
 | 
					   * Makes a simple HTTP Get request to the Price microservice.
 | 
				
			||||||
   *
 | 
					   *
 | 
				
			||||||
@@ -49,12 +57,26 @@ public class PriceClientImpl implements PriceClient {
 | 
				
			|||||||
        .build();
 | 
					        .build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
 | 
					      LOGGER.info("Sending request to fetch price info");
 | 
				
			||||||
      var httpResponse = httpClient.send(httpGet, BodyHandlers.ofString());
 | 
					      var httpResponse = httpClient.send(httpGet, BodyHandlers.ofString());
 | 
				
			||||||
 | 
					      logResponse(httpResponse);
 | 
				
			||||||
      return httpResponse.body();
 | 
					      return httpResponse.body();
 | 
				
			||||||
    } catch (IOException | InterruptedException e) {
 | 
					    } catch (IOException | InterruptedException e) {
 | 
				
			||||||
      e.printStackTrace();
 | 
					      LOGGER.error("Failure occurred while getting price info", e);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  private void logResponse(HttpResponse<String> httpResponse) {
 | 
				
			||||||
 | 
					    if (isSuccessResponse(httpResponse.statusCode())) {
 | 
				
			||||||
 | 
					      LOGGER.info("Price info received successfully");
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      LOGGER.warn("Price info request failed");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  private boolean isSuccessResponse(int responseCode) {
 | 
				
			||||||
 | 
					    return responseCode >= 200 && responseCode <= 299;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,15 +23,20 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
package com.iluwatar.image.microservice;
 | 
					package com.iluwatar.image.microservice;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import static org.slf4j.LoggerFactory.getLogger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.slf4j.Logger;
 | 
				
			||||||
import org.springframework.web.bind.annotation.RequestMapping;
 | 
					import org.springframework.web.bind.annotation.RequestMapping;
 | 
				
			||||||
import org.springframework.web.bind.annotation.RequestMethod;
 | 
					import org.springframework.web.bind.annotation.RequestMethod;
 | 
				
			||||||
import org.springframework.web.bind.annotation.RestController;
 | 
					import org.springframework.web.bind.annotation.RestController;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Exposes the Image microservice's endpoints.
 | 
					 * Exposes the Image microservice's endpoints.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@RestController
 | 
					@RestController
 | 
				
			||||||
public class ImageController {
 | 
					public class ImageController {
 | 
				
			||||||
 | 
					  private static final Logger LOGGER = getLogger(ImageController.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /**
 | 
					  /**
 | 
				
			||||||
   * An endpoint for a user to retrieve an image path.
 | 
					   * An endpoint for a user to retrieve an image path.
 | 
				
			||||||
@@ -40,6 +45,7 @@ public class ImageController {
 | 
				
			|||||||
   */
 | 
					   */
 | 
				
			||||||
  @RequestMapping(value = "/image-path", method = RequestMethod.GET)
 | 
					  @RequestMapping(value = "/image-path", method = RequestMethod.GET)
 | 
				
			||||||
  public String getImagePath() {
 | 
					  public String getImagePath() {
 | 
				
			||||||
 | 
					    LOGGER.info("Successfully found image path");
 | 
				
			||||||
    return "/product-image.png";
 | 
					    return "/product-image.png";
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,15 +23,20 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
package com.iluwatar.price.microservice;
 | 
					package com.iluwatar.price.microservice;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import static org.slf4j.LoggerFactory.getLogger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.slf4j.Logger;
 | 
				
			||||||
import org.springframework.web.bind.annotation.RequestMapping;
 | 
					import org.springframework.web.bind.annotation.RequestMapping;
 | 
				
			||||||
import org.springframework.web.bind.annotation.RequestMethod;
 | 
					import org.springframework.web.bind.annotation.RequestMethod;
 | 
				
			||||||
import org.springframework.web.bind.annotation.RestController;
 | 
					import org.springframework.web.bind.annotation.RestController;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Exposes the Price microservice's endpoints.
 | 
					 * Exposes the Price microservice's endpoints.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@RestController
 | 
					@RestController
 | 
				
			||||||
public class PriceController {
 | 
					public class PriceController {
 | 
				
			||||||
 | 
					  private static final Logger LOGGER = getLogger(PriceController.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /**
 | 
					  /**
 | 
				
			||||||
   * An endpoint for a user to retrieve a product's price.
 | 
					   * An endpoint for a user to retrieve a product's price.
 | 
				
			||||||
@@ -40,6 +45,7 @@ public class PriceController {
 | 
				
			|||||||
   */
 | 
					   */
 | 
				
			||||||
  @RequestMapping(value = "/price", method = RequestMethod.GET)
 | 
					  @RequestMapping(value = "/price", method = RequestMethod.GET)
 | 
				
			||||||
  public String getPrice() {
 | 
					  public String getPrice() {
 | 
				
			||||||
 | 
					    LOGGER.info("Successfully found price info");
 | 
				
			||||||
    return "20";
 | 
					    return "20";
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user