Skip to main content

Command Palette

Search for a command to run...

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

Updated
•6 min read•View as Markdown
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 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 (सर्व्हरची चूक) 🔥

  • 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! 🚀

More from this blog

Markmap: Markdown से Mind Map बनाने का जादुई टूल! 🗺️

नमस्कार मित्रों!आज हम एक बेहद शानदार टूल के बारे में बात करने वाले हैं – Markmap।यह टूल Markdown और Mind Map का एक बेहतरीन संगम है। Markmap आखिर है क्या? सीधे शब्दों में कहें तो, Markmap = Markdown + Mindmap आपने Markdown के बारे में जरूर सुना होगा।...

Feb 16, 20265 min read

Markmap: Markdown मधून Mind Map तयार करण्याचं जादूचं साधन! 🗺️

नमस्कार मित्रांनो!आज आपण एका अतिशय जबरदस्त टूलबद्दल बोलणार आहोत - Markmap.हे टूल म्हणजे Markdown आणि Mind Map यांचा एक अप्रतिम संगम आहे. Markmap म्हणजे नक्की काय? सोपं सांगायचं तर, Markmap = Markdown + Mindmap तुम्ही Markdown बद्दल ऐकलं असेलच.तो साध...

Feb 16, 20265 min read

Hashing - डिजिटल जगातील जादूई फंक्शन ✨🔐

कल्पना करा की तुमच्या शहरात एक मोठी लायब्रेरी आहे.लाखो पुस्तके आहेत.एक वाचक येतो आणि "महाभारत" शोधू इच्छितो.त्यासाठी तुम्ही प्रत्येक पुस्तक शेल्फमध्ये एक-एक करून तपास करणार का?असं झालं तर साधारण पुस्तक शोधण्यासही पूर्ण दिवस लागेल! आता कल्पना करा -तुम...

Feb 11, 20266 min read

Hashing – डिजिटल दुनिया का जादुई फ़ंक्शन ✨🔐

कल्पना कीजिए कि आपके शहर में एक बहुत बड़ी लाइब्रेरी है। लाखों किताबें हैं। एक पाठक आता है और “महाभारत” खोजना चाहता है। तो क्या आप हर किताब को शेल्फ़ में एक-एक करके चेक करेंगे? अगर ऐसा किया, तो एक साधारण किताब ढूँढने में भी पूरा दिन लग जाएगा! अब कल्पन...

Feb 11, 20266 min read

चांगला Resume कसा लिहावा? (नोकरीचा मार्ग सुलभ करण्याची कला developers साठी!)

चला एक गोष्ट सांगतो.कल्पना करा तुम्ही एका मोठ्या कंपनीत Apply केलंय. तुमचा Resume पाठवला, आणि मग...काहीच नाही झालं! कॉल नाही, मेल नाही. का असं होतं?कारण तुमचा Resume हा एका ढिगात, इतर ३०० Resumes सोबत, एका घाईत असलेल्या Recruiter च्या टेबलावर पडलेला ...

Feb 9, 20268 min read

AmolKharat's Blog

22 posts

हा blog technology, system design, tools, mobile development आणि Indian language learning यावर आहे. जटिल गोष्टी सोप्या शब्दांत, गोष्टी व उदाहरणांतून समजावण्याचा प्रयत्न आहे.