@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/c1to 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"
);
}
}
Ab URL:
-
GET /cloud/c1→ method call hoga.
@GetMapping ke baghair alternative
Aap ye bhi kar sakte ho:
@RequestMapping(value="/{vendorid}", method=RequestMethod.GET)
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)