सही HTTP मेथड, सही स्टेटस कोड और रिक्वेस्ट बॉडी की जाँच के साथ एक साफ़-सुथरी REST API डिज़ाइन करें।
इस पाठ को Kodokon में खोलेंएक REST API संसाधनों (उपयोगकर्ता, कार्य, ऑर्डर) को उजागर करती है जिन्हें HTTP मेथड से नियंत्रित किया जाता है: पढ़ने के लिए GET, बनाने के लिए POST, अपडेट करने के लिए PUT या PATCH, हटाने के लिए DELETE। पेशेवर परंपरा: URL में बहुवचन संज्ञाएँ, कभी क्रियाएँ नहीं। आप POST /tasks लिखते हैं, न कि /createTask। आइए एक छोटी कार्य API बनाएँ, फ़िलहाल मेमोरी में।
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 प्राप्त हो जाती है।
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 के साथ, यह आपका कोड है जो विफल हुआ।
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();
});req.body undefined बनी रहती है?app.use(express.json())app.use(express.static(...))app.listen(3000)title फ़ील्ड के बिना एक POST भेजता है। API की सही प्रतिक्रिया क्या है?