DEV Community

Er. Bhupendra
Er. Bhupendra

Posted on

@RestController in Spring Boot

WHY WE SHOULD WRITE THIS @RestController IF DONT WRITE WHAT WILL HAPPEN
==> SPRING FRAME WORK KO PTA CHALTA HAI KI ISKA KYA KARTA HAI API HAI YA NORMAL JAVA CLASS

@RestController Spring Boot ka ek bahut important annotation hai. Aasan bhasha mein samjhte hain ki iska kaam kya hai aur ise na likhne par kya hoga:

1. @RestController ka kaam kya hai?

Ye do cheezon ka combination (Mix) hai: @Controller + @ResponseBody.

  • @Controller: Spring ko batata hai ki ye class ek "Web Controller" hai. Matlab, jab bhi koi browser ya application (jaise Postman) koi request bhejega, toh Spring is class mein check karega ki us request ko handle karne ke liye koi method hai ya nahi.
  • @ResponseBody: Ye sabse zaruri hai. Iska matlab hai ki aapka method jo bhi return karega (jaise String, List, ya Object), wo seedhe JSON format mein convert hokar client ko mil jayega.

2. Agar ise nahi likhenge toh kya hoga?

Agar aap @RestController nahi likhte, toh ye saari problems aayengi:

  1. Spring ko pata hi nahi chalega: Spring framework ko ye samajh nahi aayega ki ye class koi API handle karne ke liye banayi gayi hai. Ye class ek normal Java class ban kar reh jayegi.
  2. 404 Error (Not Found): Jab aap apna URL browser ya Postman mein hit karenge (e.g., localhost:8080/cloudvendor), toh aapko 404 Not Found error milega, kyunki Spring ne us URL ko kisi controller ke saath map hi nahi kiya hoga.
  3. View ki talaash (HTML file dhundna): Agar aapne sirf @Controller likha hai (aur @RestController nahi), toh Spring ko lagega ki aap koi HTML page (view) return karna chahte hain.
    • Example: Agar aapka method return "Success"; karta hai, toh Spring "Success.html" naam ki file dhundne lagega. Jab use wo file nahi milegi, toh error de dega.

Summary Table

Feature @RestController ke saath Bina @RestController ke
Pehchan Spring ise API controller manta hai. Spring ise ignore kar deta hai.
Response Data direct JSON format mein jata hai. Spring HTML file (View) dhundta hai.
Usage REST APIs banane ke liye best hai. Normal class ban jati hai, kaam nahi karti.

Asli zindagi ka example:
Sochiye @RestController ek Signboard ki tarah hai jo dukaan (Class) ke bahar laga hai. Agar signboard nahi hoga, toh logon (Requests) ko pata hi nahi chalega ki yahan koi dukaan hai, aur wo wahan se nikal jayenge!

Top comments (0)