Node.jsIntermediate
REST API Development
REST API design, CRUD operations, status codes, validation — Node.js/Express-এ API তৈরির বাংলা গাইড।
10টি অংশবাংলা ভাষায়
API (Application Programming Interface) হলো client ও server-এর মধ্যে কথা বলার মাধ্যম। REST API হলো সবচেয়ে জনপ্রিয় API architecture।
REST API Design
| Method | Endpoint | কাজ |
|---|---|---|
| GET | /api/users | সব user আনা |
| GET | /api/users/:id | নির্দিষ্ট user আনা |
| POST | /api/users | নতুন user তৈরি |
| PUT | /api/users/:id | user update |
| DELETE | /api/users/:id | user মুছে ফেলা |
Full CRUD API
routes/users.jsjavascript
javascript
const express = require("express");
const router = express.Router();
let users = [
{ id: 1, name: "রহিম", email: "rahim@example.com" },
{ id: 2, name: "করিম", email: "karim@example.com" },
];
// GET /api/users
router.get("/", (req, res) => {
res.json(users);
});
// GET /api/users/:id
router.get("/:id", (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (!user) return res.status(404).json({ error: "User পাওয়া যায়নি" });
res.json(user);
});
// POST /api/users
router.post("/", (req, res) => {
const { name, email } = req.body;
if (!name || !email) {
return res.status(400).json({ error: "Name ও email দরকার" });
}
const newUser = { id: Date.now(), name, email };
users.push(newUser);
res.status(201).json(newUser);
});
// PUT /api/users/:id
router.put("/:id", (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (!user) return res.status(404).json({ error: "User পাওয়া যায়নি" });
Object.assign(user, req.body);
res.json(user);
});
// DELETE /api/users/:id
router.delete("/:id", (req, res) => {
users = users.filter(u => u.id !== parseInt(req.params.id));
res.json({ message: "User মুছে ফেলা হয়েছে" });
});
module.exports = router;HTTP Status Codes
| Code | অর্থ |
|---|---|
| 200 | OK — সফল |
| 201 | Created — নতুন resource তৈরি হয়েছে |
| 204 | No Content — সফল কিন্তু response body নেই |
| 400 | Bad Request — client ভুল |
| 401 | Unauthorized — authentication লাগবে |
| 403 | Forbidden — permission নেই |
| 404 | Not Found — resource নেই |
| 500 | Internal Server Error — server সমস্যা |
Request Validation
// simple validation middleware
const validateUser = (req, res, next) => {
const { name, email } = req.body;
if (!name || name.length < 2) {
return res.status(400).json({
error: "Name কমপক্ষে 2 characters হতে হবে"
});
}
if (!email || !email.includes("@")) {
return res.status(400).json({
error: "Valid email দিন"
});
}
next();
};
router.post("/", validateUser, (req, res) => {
// validated data
const user = { id: Date.now(), ...req.body };
users.push(user);
res.status(201).json(user);
});Production Libraries
বড় project-এ validation-এর জন্য Zod বা Joi library ব্যবহার করুন। এগুলো automatic type coercion ও detailed error message দেয়।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।