API#2: REST API के मूल सिद्धांत – HTTP Methods और Status Codes

नमस्कार developers! 🙏
पिछले ब्लॉग में हमने सीखा कि 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 उसे JSON / XML format में भेजती है
👉 यानी API डेटा का representation देती है।
🅢 S – State
State का मतलब है
👉 किसी resource की वर्तमान स्थिति
उदाहरण:
Book available है या नहीं
Price क्या है
Stock में है या नहीं
ये सारी जानकारी उस resource की state होती है।
🅣 T – Transfer
Transfer का मतलब है
👉 उस state को एक system से दूसरे system तक भेजना
उदाहरण:
- Server → Client (App / Website)
API के ज़रिए यह data network पर भेजा जाता है।
🔁 REST – संपूर्ण अर्थ (Simple Explanation)
REST का मतलब है
👉 Server पर मौजूद resource की वर्तमान स्थिति
एक structured format (JSON/XML) में Client तक भेजने का तरीका
✨ One-Line Summary
REST = Resource की state को representation में network के ज़रिए transfer करना
RESTful API का क्या मतलब है??
RESTful API का मतलब है 👉 ऐसी API जो REST के सभी नियमों को follow करके बनाई गई हो।
आसान शब्दों में: अगर कोई API
REST architecture को follow करती है
सही HTTP Methods इस्तेमाल करती है
Resources के साथ काम करती है
👉 तो उसे 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 से कहते हैं:
“Library में नई book 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 – थोड़ी जानकारी बदलें ✏️
अगर सिर्फ price बदलनी हो:
PATCH /books/2
Request:
{
"price": 300
}
PATCH में सिर्फ जिन fields में बदलाव करना है, वही भेजते हैं।
5. DELETE – हटाएँ 🗑️
DELETE /books/2
Response:
{
"message": "Book deleted successfully!"
}
HTTP Status Codes – Server क्या कह रहा है? 💬
जब आप 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: गलत data भेजा
POST /books
Body: { "name": "..." } ❌ (title चाहिए था, name नहीं!)
Response: 400 Bad Request
- 401 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 (Server की गलती) 🔥
500 Internal Server Error: server में कुछ गड़बड़ हो गई
503 Service Unavailable: server अभी available नहीं है
उदाहरण:
GET /books
Response: 500 - "Database connection failed"
REST API के महत्वपूर्ण नियम 📜
1. Stateless होना
हर request स्वतंत्र होती है। Server को आपकी पिछली 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. Consistent Naming
/books - सभी books
/books/1 - एक specific book
/books/1/reviews - उस book के reviews
/authors/5/books - author 5 की सभी books
Practical Example – Student Management 🎓
चलिए एक complete example देखते हैं:
सभी 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)
सही HTTP Method का उपयोग करें (GET, POST, PUT, PATCH, DELETE)
Status Codes समझें (क्या हुआ, यह साफ़ पता चलेगा)
अगले ब्लॉग में हम API Endpoints और Resources को विस्तार से समझेंगे।
तब तक practice करते रहें! 💪
अगर कोई सवाल हो तो comment करें। और अगर यह ब्लॉग उपयोगी लगा हो, तो share करना न भूलें। 😊
Happy RESTing! 🚀