DEV Community

Er. Bhupendra
Er. Bhupendra

Posted on

@GetMapping in SpingBoot

@GetMapping ka kaam hota hai HTTP GET request ko aapke controller method se map (route) karna.

Is code me @GetMapping("{vendorid}") kya karta hai?

  • Ye Spring ko bolta hai: “Jab koi GET request is URL par aaye: /{vendorid} to ye method chale.”
  • Example: GET http://localhost:8080/c1 to method run hoga.

Agar @GetMapping na ho to kya hoga?

  • Spring ko pata hi nahi chalega ke is method ko kis URL/HTTP method se call karna hai.
  • Result: aap jab browser/Postman se hit karoge to 404 Not Found (ya “No handler found”) milega.
  • Matlab method sirf Java code me exist karega, API endpoint expose nahi hoga.

Bonus: aapke code me mapping/params ka issue

Aap {vendorid} path variable use kar rahe ho, lekin method me @PathVariable nahi lagaya, aur vendorId, me extra comma bhi hai. Plus Java me object banate waqt vendorId:"c1" wala syntax galat hai (ye Kotlin/Named args jaisa lag raha).

Correct version kuch aisa hoga:

@RestController
@RequestMapping("/cloud")  // base path (optional but recommended)
public class CloudAPIService {

    @GetMapping("/{vendorid}")
    public CloudVentor getCloudVendorDetails(@PathVariable("vendorid") String vendorId) {
        return new CloudVentor(
                "c1", "vendor 1", "address one", "xxxx"
        );
    }
}
Enter fullscreen mode Exit fullscreen mode

Ab URL:

  • GET /cloud/c1 → method call hoga.

@GetMapping ke baghair alternative

Aap ye bhi kar sakte ho:

@RequestMapping(value="/{vendorid}", method=RequestMethod.GET)
Enter fullscreen mode Exit fullscreen mode

Lekin @GetMapping simply isi ka short/clean version hai.

Agar aap chaho to main aapke CloudVentor model ka constructor/fields dekh ke exact correct return object bhi set kar dunga.

Top comments (0)