Spring Boot Request Mapping: How to Handle Multiple Request Paths in a Controller

I’m working on a Spring Boot project and I have a controller where I want to map multiple request paths to a single method. Let’s say I have a RESTful API for managing products, and I want to handle both GET requests for product details and POST requests for creating new products in the same controller.

Here’s a simplified example of my controller:

@RestController
@RequestMapping("/products")
public class ProductController {

    @GetMapping("/{productId}")
    public ResponseEntity<Product> getProductDetails(@PathVariable Long productId) {
        // Retrieve and return product details
    }

    @PostMapping("/create")
    public ResponseEntity<Product> createProduct(@RequestBody Product newProduct) {
        // Create and return the new product
    }
}

I want to be able to access product details using a GET request to /products/{productId} and create new products with a POST request to /products/create . However, when I try this, the POST request doesn’t seem to work as expected. What am I doing wrong, and how can I make this work with Spring Boot’s request mapping?
I’ve searched through a number of websites without getting an acceptable answer, therefore I’d appreciate advice on how to successfully set up request mappings in a Spring Boot controller to handle various HTTP methods and request pathways.

1 Like