The core logic resides in NumericController.java. It defines three endpoints:
Copy
Ask AI
package com.devsecops;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.http.ResponseEntity;import org.springframework.web.bind.annotation.*;import org.springframework.web.client.RestTemplate;@RestControllerpublic class NumericController { private final Logger logger = LoggerFactory.getLogger(getClass()); // For Kubernetes use: private static final String baseURL = "http://node-service:5000/plusone"; // For local testing, uncomment the line below and comment out the Kubernetes URL: // private static final String baseURL = "http://localhost:5000/plusone"; private final RestTemplate restTemplate = new RestTemplate(); @GetMapping("/") public String welcome() { return "Kubernetes DevSecOps"; } @GetMapping("/compare/{value}") public String compareToFifty(@PathVariable int value) { return (value > 50) ? "Greater than 50" : "Smaller than or equal to 50"; } @GetMapping("/increment/{value}") public ResponseEntity<String> increment(@PathVariable int value) { logger.info("Value received in request: " + value); ResponseEntity<String> response = restTemplate.getForEntity(baseURL + "/" + value, String.class); String nodeResponse = response.getBody(); String body = "Spring received: " + value + "\nNode response: " + nodeResponse; return ResponseEntity.ok(body); }}
Toggle the baseURL between localhost (for local debugging) and node-service (for Kubernetes) before running the app.