API#2: REST API ची मूलतत्त्वे - HTTP Methods, Status Codes

नमस्कार developers! 🙏
मागच्या blog मध्ये आपण API म्हणजे काय हे शिकलो. आज आपण सर्वात popular प्रकारच्या API विषयी बोलणार आहोत - REST API!
REST म्हणजे काय? 🤔
REST म्हणजे Representational State Transfer.
(अरे, घाबरू नका technical नावाने! 😄)
REST म्हणजे एक architectural style आहे - म्हणजे APIs बनवण्याचा एक सुव्यवस्थित मार्ग. हे internet वरून काम करते आणि HTTP protocol वापरते.
सोपं उदाहरण - Library 📚
समजा तुमच्याकडे एक library आहे. तुम्ही books वर काही operations करू शकता:
नवीन book आणा (Create)
Book वाचा (Read)
Book ची माहिती बदला (Update)
Book काढून टाका (Delete)
हे चार operations ला आपण CRUD (Create Read Update Delete) म्हणतो - आणि REST API मध्ये हेच आपण करतो!
REST = Representational State Transfer चा शब्दशः अर्थ
🅡 R – Representational
Representational म्हणजे 👉 डेटाचा थेट object नाही, तर त्याचं representation (स्वरूप)
उदा.:
Book हा database मधील object आहे
पण API तुम्हाला Book JSON / XML स्वरूपात देते
{
"id": 1,
"title": "Harry Potter"
}
👉 म्हणजेच API डेटाचं representation पाठवते.
🅢 S – State
State म्हणजे 👉 एखाद्या resource ची सध्याची स्थिती
उदा.:
Book available आहे का?
Price काय आहे?
Stock मध्ये आहे का?
ही सगळी माहिती म्हणजे त्या resource ची state.
🅣 T – Transfer
Transfer म्हणजे 👉 ही state एक system कडून दुसऱ्या system कडे पाठवणे
उदा.:
- Server → Client (Mobile App / Website)
API च्या माध्यमातून ही माहिती network वरून जाते.
🔁 REST – पूर्ण अर्थ (Simple Explanation)
REST म्हणजे
👉 Server वर असलेल्या resource ची सध्याची स्थिती
एका structured स्वरूपात (JSON/XML) Client कडे पाठवण्याची पद्धत
✨ One-Line Summary
REST = Resource ची state, representation मध्ये, network वरून transfer करणे
RESTful API म्हणजे काय?
RESTful API म्हणजे 👉 अशी API जी REST principles (नियम) योग्य पद्धतीने पाळून बनवलेली असते.
सोप्या शब्दात सांगायचं तर: जर API
REST architecture follow करत असेल
योग्य HTTP Methods वापरत असेल
Resources वर काम करत असेल
👉 तर ती API RESTful API म्हणतात.
HTTP Methods - तुमचे Tools 🛠️
REST API मध्ये आपल्याला काय करायचं आहे हे सांगण्यासाठी आपण HTTP Methods वापरतो. हे library च्या उदाहरणात समजून घेऊया:
1. GET - माहिती मिळवा 📖
जसं तुम्ही librarian ला म्हणता:
"मला 'Harry Potter' चं book दाखव"
GET /books/1
Response:
{
"id": 1,
"title": "Harry Potter",
"author": "J.K. Rowling",
"price": 500
}
सर्व books पाहायचे असतील तर:
GET /booksएकच specific book पाहायचे असेल तर:
GET /books/1
महत्वाचं: GET method कधीच data बदलत नाही, फक्त वाचतो!
2. POST - नवीन माहिती तयार करा ➕
जसं तुम्ही librarian ला म्हणता:
"नवीन book library मध्ये add करा"
POST /books
तुम्ही पाठवता (Request Body):
{
"title": "Shyamchi Aai",
"author": "Sane Guruji",
"price": 200
}
Response:
{
"id": 2,
"title": "Shyamchi Aai",
"author": "Sane Guruji",
"price": 200,
"message": "Book successfully added!"
}
3. PUT - संपूर्ण माहिती बदला 🔄
जसं तुम्ही म्हणता:
"Book ID 2 ची सगळी माहिती बदला"
PUT /books/2
Request:
{
"title": "Shyamchi Aai - Special Edition",
"author": "Sane Guruji",
"price": 250
}
PUT मध्ये तुम्हाला सर्व fields पाठवावे लागतात.
4. PATCH - थोडी माहिती बदला ✏️
फक्त किंमत बदलायची असेल तर:
PATCH /books/2
Request:
{
"price": 300
}
PATCH मध्ये फक्त बदलायचे fields पाठवा.
5. DELETE - काढून टाका 🗑️
DELETE /books/2
Response:
{
"message": "Book deleted successfully!"
}
HTTP Status Codes - सर्व्हर काय म्हणतोय? 💬
जेव्हा तुम्ही API ला request पाठवता, तेव्हा ते तुम्हाला एक status code देते - यावरून काय झालं ते कळतं.
2xx - Success! 🎉
200 OK: सगळं छान झालं! (GET, PUT, PATCH साठी)
201 Created: नवीन resource तयार झाला! (POST साठी)
204 No Content: काम झालं, पण response मध्ये काही नाही (DELETE साठी)
उदाहरण:
तुम्ही: GET /books/1
Server: 200 OK + Book ची माहिती
4xx - Client Error (तुमची चूक) 😅
400 Bad Request: तुम्ही चुकीची माहिती पाठवली
POST /books Body: { "name": "..." } ❌ (title हवं होतं, name नाही!) Response: 400 Bad Request401 Unauthorized: तुम्ही login नाही केलेत
GET /my-profile Response: 401 - "Please login first!"403 Forbidden: तुम्हाला permission नाही
DELETE /admin/users/5 Response: 403 - "Only admin can delete users!"404 Not Found: तुम्ही मागितलेली गोष्ट सापडली नाही
GET /books/999 Response: 404 - "Book not found!"
5xx - Server Error (सर्व्हरची चूक) 🔥
500 Internal Server Error: सर्व्हर मध्ये काहीतरी गडबड झाली
503 Service Unavailable: सर्व्हर सध्या available नाही
उदाहरण:
GET /books
Response: 500 - "Database connection failed"
REST API चे Important नियम 📜
1. Stateless असणं
प्रत्येक request स्वतंत्र असतो. सर्व्हर ला तुमची मागची request आठवत नाही.
Request 1: GET /books/1 ✅
Request 2: GET /books/2 ✅ (पहिल्याशी काही संबंध नाही)
2. Resource-Based URLs
URLs मध्ये verbs (क्रियापदे) नाहीत, फक्त nouns (नामे) असतात:
चुकीचं ❌:
GET /getBooks
POST /createBook
DELETE /deleteBook
बरोबर ✅:
GET /books
POST /books
DELETE /books/1
3. सुसंगत Naming
/books - सर्व books
/books/1 - एकच book
/books/1/reviews - त्या book चे reviews
/authors/5/books - author 5 ची सर्व books
व्यावहारिक उदाहरण - Student Management 🎓
चला एक complete उदाहरण बघूया:
सर्व students पाहा:
GET /students
Response: 200 OK
[
{"id": 1, "name": "Rahul", "class": "10th"},
{"id": 2, "name": "Priya", "class": "12th"}
]
नवीन student add करा:
POST /students
Body: {"name": "Amit", "class": "11th"}
Response: 201 Created
{"id": 3, "name": "Amit", "class": "11th"}
Student ID 3 ची माहिती बदला:
PATCH /students/3
Body: {"class": "12th"}
Response: 200 OK
{"id": 3, "name": "Amit", "class": "12th"}
Student ID 3 delete करा:
DELETE /students/3
Response: 204 No Content
Quick Reference Card 🎴
╔══════════╦═══════════════════╦═══════════════╗
║ Method ║ Operation ║ Status Code ║
╠══════════╬═══════════════════╬═══════════════╣
║ GET ║ Read/Retrieve ║ 200 ║
║ POST ║ Create ║ 201 ║
║ PUT ║ Full Update ║ 200 ║
║ PATCH ║ Partial Update ║ 200 ║
║ DELETE ║ Delete ║ 204 ║
╚══════════╩═══════════════════╩═══════════════╝
निष्कर्ष 🎯
REST API हे समजणे सोपे आहे:
Resources (books, students, users) identify करा
योग्य HTTP Method वापरा (GET, POST, PUT, PATCH, DELETE)
Status Codes समजून घ्या (काय झालं ते कळेल)
आपल्या पुढच्या blog मध्ये आपण API Endpoints आणि Resources सविस्तर समजून घेणार आहोत!
तोपर्यंत, Practice करत रहा! 💪
प्रश्न असतील तर comment करा! आणि जर हा blog उपयुक्त वाटला तर share करायला विसरू नका. 😊
Happy RESTing! 🚀