REST Kya Hai?
REST (Representational State Transfer), Roy Fielding ki 2000 ki PhD DISSERTATION SE AAYA, EK ARCHITECTURAL STYLE hai, WEB SERVICES banaने ke liye — KOI PROTOCOL YA STANDARD NAHI, EK SET of CONSTRAINTS/PRINCIPLES hai, JO, SCALABLE, MAINTAINABLE APIs DESIGN karne mein, HELP karte hain.
CORE IDEA — HAR CHEEZ, EK "RESOURCE" hai (jaise EK USER, EK ORDER), JISKA EK UNIQUE URI (jaise /users/42) hai. CLIENT, STANDARD HTTP METHODS (GET, POST, PUT, DELETE) SE, IN RESOURCES PAR, OPERATIONS PERFORM karta hai. RESOURCE ki CURRENT STATE, EK "REPRESENTATION" (TYPICALLY JSON) ke ROOP mein, TRANSFER hoती hai.
// Resource-oriented URLs — NOUNS, VERBS NAHI:
GET /api/users → saare users
GET /api/users/42 → ek specific user
POST /api/users → naya user banao
PUT /api/users/42 → user update karo
DELETE /api/users/42 → user delete karo
// GALAT (RESTful NAHI — URL mein VERB):
// GET /api/getUsers
// POST /api/createUser- REST = architectural style, protocol NAHI hai
- Resources, URIs se identify hote hain (nouns, verbs nahi)
- Standard HTTP methods se, resources par, operations perform hote hain
REST, CHHE, ARCHITECTURAL CONSTRAINTS PAR, BASED hai — CLIENT-SERVER, STATELESSNESS, CACHEABILITY, UNIFORM INTERFACE, LAYERED SYSTEM, aur CODE-ON-DEMAND (OPTIONAL). IN CONSTRAINTS ko, FOLLOW karна, EK SYSTEM ko, "RESTful" BANATA hai.
- Client-Server = concerns, SEPARATE (UI vs DATA STORAGE)
- Stateless = server, client CONTEXT, STORE NAHI karta
- Uniform Interface = CONSISTENT, PREDICTABLE, resource interactions
Stateless SERVERS, HORIZONTALLY, EASILY, SCALE hote hain — KISI BHI REQUEST ko, KISI BHI SERVER INSTANCE PAR, ROUTE kiya ja sakta hai (LOAD BALANCER SE), kyunki, KOI "SESSION AFFINITY" ki, ZAROORAT NAHI (SERVER, CLIENT ki, STATE, YAAD NAHI RAKHTA — HAR REQUEST, SELF-CONTAINED hai).