Kodokon kodokon.com

REST API बनाना

सही HTTP मेथड, सही स्टेटस कोड और रिक्वेस्ट बॉडी की जाँच के साथ एक साफ़-सुथरी REST API डिज़ाइन करें।

9 मिनट · 3 प्रश्न

इस पाठ को Kodokon में खोलें

एक REST API संसाधनों (उपयोगकर्ता, कार्य, ऑर्डर) को उजागर करती है जिन्हें HTTP मेथड से नियंत्रित किया जाता है: पढ़ने के लिए GET, बनाने के लिए POST, अपडेट करने के लिए PUT या PATCH, हटाने के लिए DELETE। पेशेवर परंपरा: URL में बहुवचन संज्ञाएँ, कभी क्रियाएँ नहीं। आप POST /tasks लिखते हैं, न कि /createTask। आइए एक छोटी कार्य API बनाएँ, फ़िलहाल मेमोरी में।

JAVASCRIPT
import express from "express";

const app = express();
app.use(express.json());

const tasks = [
  { id: 1, title: "Review the module", done: false }
];

app.get("/tasks", (req, res) => {
  res.json(tasks);
});

app.listen(3000);

app.use(express.json()) लाइन आवश्यक है: इसके बिना, किसी भी JSON रिक्वेस्ट के लिए req.body undefined होती है। बनाते समय, हमेशा इनपुट की जाँच करें, 201 के साथ प्रतिक्रिया दें, और बनाया गया संसाधन लौटाएँ: इससे क्लाइंट को सर्वर द्वारा उत्पन्न id प्राप्त हो जाती है।

JAVASCRIPT
app.post("/tasks", (req, res) => {
  const { title } = req.body;
  if (!title) {
    return res.status(400).json({
      error: "The title field is required"
    });
  }
  const task = {
    id: tasks.length + 1,
    title,
    done: false
  };
  tasks.push(task);
  res.status(201).json(task);
});

उन कोड को याद रखें जिनका आप रोज़ उपयोग करेंगे: 200 सफल पठन या अपडेट, 201 संसाधन बनाया गया, 204 बिना सामग्री के सफलता (हटाना), 400 अमान्य रिक्वेस्ट, 404 संसाधन नहीं मिला, 500 सर्वर त्रुटि। नियम: 4xx के साथ, क्लाइंट ने गलती की; 5xx के साथ, यह आपका कोड है जो विफल हुआ।

JAVASCRIPT
app.delete("/tasks/:id", (req, res) => {
  const id = Number(req.params.id);
  const index = tasks.findIndex((t) => t.id === id);
  if (index === -1) {
    return res.status(404).json({
      error: "Task not found"
    });
  }
  tasks.splice(index, 1);
  res.status(204).end();
});

ज्ञान जांच

सुनिश्चित करें कि आपको इस पाठ के मुख्य बिंदु याद हैं।

  1. किसी संसाधन को सफलतापूर्वक बनाने के बाद आप कौन सा स्टेटस कोड लौटाते हैं?
    • 200
    • 201
    • 204
    • 301
  2. किस लाइन के बिना किसी JSON रिक्वेस्ट के लिए req.body undefined बनी रहती है?
    • app.use(express.json())
    • app.use(express.static(...))
    • app.listen(3000)
  3. एक क्लाइंट आवश्यक title फ़ील्ड के बिना एक POST भेजता है। API की सही प्रतिक्रिया क्या है?
    • खाली title के साथ संसाधन बनाना
    • एक त्रुटि संदेश के साथ 400 स्टेटस लौटाना
    • एक 500 स्टेटस लौटाना
    • बिना प्रतिक्रिया दिए रिक्वेस्ट को अनदेखा करना