REST (Representational State Transfer) একটি আর্কিটেকচারাল স্টাইল যা ওয়েব সার্ভিস তৈরি করার জন্য ব্যবহৃত হয়। REST API (Application Programming Interface) একটি পদ্ধতি যার মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা আদান-প্রদান হয়। ExpressJS-এর মাধ্যমে আপনি খুব সহজেই RESTful API তৈরি করতে পারেন।
১. REST API কি?
REST API একটি ওয়েব সার্ভিস যা HTTP প্রোটোকল ব্যবহার করে ডেটা অ্যাক্সেস এবং ম্যানিপুলেশন করার জন্য ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ স্থাপন করে। এটি REST আর্কিটেকচারের মূল নীতির উপর ভিত্তি করে কাজ করে এবং CRUD (Create, Read, Update, Delete) অপারেশন পরিচালনা করে।
REST API সাধারণত ৪টি মূল HTTP মেথড ব্যবহার করে:
- GET: ডেটা রিট্রিভ (অথবা পড়া)
- POST: নতুন ডেটা তৈরি (অথবা যোগ করা)
- PUT: ডেটা আপডেট করা
- DELETE: ডেটা মুছে ফেলা
১.১. RESTful API এর মূল বৈশিষ্ট্য
- Stateless: প্রতিটি রিকোয়েস্ট সম্পূর্ণভাবে স্বাধীন, সার্ভার কোনো পূর্ববর্তী রিকোয়েস্টের তথ্য সংরক্ষণ করে না।
- Client-Server: ক্লায়েন্ট এবং সার্ভার একে অপর থেকে স্বাধীন, ফলে উভয়ের মধ্যে যোগাযোগ সহজ হয়।
- Cacheable: কিছু রিকোয়েস্টকে ক্যাশ করা যেতে পারে, যা কর্মক্ষমতা বৃদ্ধি করতে সাহায্য করে।
- Uniform Interface: API এর সকল রাউট ও রিকোয়েস্ট হ্যান্ডলিং নিয়মাবলী একটি নির্দিষ্ট কাঠামোর মধ্যে থাকে, যাতে ব্যবহার করা সহজ হয়।
২. REST API তৈরি করার জন্য ExpressJS ব্যবহার
ExpressJS-এ REST API তৈরি করা বেশ সহজ। ExpressJS এর মাধ্যমে রাউট সেটআপ করে, আপনি HTTP মেথডের মাধ্যমে ডেটা পরিচালনা করতে পারেন।
২.১. REST API এর উদাহরণ (GET, POST, PUT, DELETE)
ধরা যাক, আপনি একটি users রিসোর্সের জন্য API তৈরি করতে চান যেখানে আপনি ব্যবহারকারীদের তথ্য দেখতে, যোগ করতে, আপডেট করতে এবং মুছে ফেলতে পারবেন। এর জন্য ExpressJS-এ কিছু সাধারণ রাউট তৈরি করা হবে।
const express = require('express');
const app = express();
const port = 3000;
// মিথ্যা ডেটাবেস
let users = [
{ id: 1, name: 'John Doe', age: 30 },
{ id: 2, name: 'Jane Doe', age: 25 }
];
// JSON বডি পার্স করার জন্য মিডলওয়্যার
app.use(express.json());
// GET: সমস্ত ব্যবহারকারীদের তথ্য রিটার্ন করা
app.get('/users', (req, res) => {
res.json(users);
});
// GET: নির্দিষ্ট ব্যবহারকারীর তথ্য রিটার্ন করা
app.get('/users/:id', (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (!user) return res.status(404).send('User not found');
res.json(user);
});
// POST: নতুন ব্যবহারকারী তৈরি করা
app.post('/users', (req, res) => {
const { name, age } = req.body;
const user = { id: users.length + 1, name, age };
users.push(user);
res.status(201).json(user);
});
// PUT: ব্যবহারকারীর তথ্য আপডেট করা
app.put('/users/:id', (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (!user) return res.status(404).send('User not found');
user.name = req.body.name;
user.age = req.body.age;
res.json(user);
});
// DELETE: ব্যবহারকারী মুছে ফেলা
app.delete('/users/:id', (req, res) => {
const userIndex = users.findIndex(u => u.id === parseInt(req.params.id));
if (userIndex === -1) return res.status(404).send('User not found');
users.splice(userIndex, 1);
res.status(204).send(); // 204 No Content
});
// সার্ভার শুরু
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
এখানে আমরা চারটি প্রধান HTTP মেথডের সাহায্যে একটি REST API তৈরি করেছি:
- GET
/users: সমস্ত ব্যবহারকারীর তথ্য দেখাবে। - GET
/users/:id: নির্দিষ্ট একটি ব্যবহারকারীর তথ্য দেখাবে। - POST
/users: নতুন একটি ব্যবহারকারী তৈরি করবে। - PUT
/users/:id: একটি নির্দিষ্ট ব্যবহারকারীর তথ্য আপডেট করবে। - DELETE
/users/:id: একটি নির্দিষ্ট ব্যবহারকারী মুছে ফেলবে।
২.২. API রিকোয়েস্ট এবং রেসপন্স
- GET
/usersরিকোয়েস্ট:- রেসপন্স: একটি JSON অ্যারে যার মধ্যে সমস্ত ব্যবহারকারীর তথ্য থাকবে।
- GET
/users/:idরিকোয়েস্ট:- রেসপন্স: নির্দিষ্ট ব্যবহারকারীর তথ্য (যেমন
{ id: 1, name: 'John Doe', age: 30 })
- রেসপন্স: নির্দিষ্ট ব্যবহারকারীর তথ্য (যেমন
- POST
/usersরিকোয়েস্ট:- রিকোয়েস্ট বডি:
{ "name": "Alice", "age": 35 } - রেসপন্স: নতুন ব্যবহারকারী তৈরির তথ্য সহ (যেমন
{ id: 3, name: 'Alice', age: 35 })
- রিকোয়েস্ট বডি:
- PUT
/users/:idরিকোয়েস্ট:- রিকোয়েস্ট বডি:
{ "name": "John Smith", "age": 32 } - রেসপন্স: আপডেট করা ব্যবহারকারীর তথ্য
- রিকোয়েস্ট বডি:
- DELETE
/users/:idরিকোয়েস্ট:- রেসপন্স: 204 No Content (ব্যবহারকারী সফলভাবে মুছে ফেলা হয়েছে)
৩. REST API এর মৌলিক ধারণা
REST API তৈরির সময় কিছু মৌলিক ধারণা মনে রাখা জরুরি:
- Stateless: প্রতিটি রিকোয়েস্ট সম্পূর্ণভাবে স্বাধীন এবং পূর্ববর্তী রিকোয়েস্টের তথ্যের উপর নির্ভর করে না।
- Resources: API-তে প্রতিটি ডেটা একটি রিসোর্স হিসেবে গণ্য হয় (যেমন:
users,posts,comments)। - HTTP Methods: CRUD অপারেশনগুলো HTTP মেথডের মাধ্যমে পরিচালিত হয়: GET (পড়ার জন্য), POST (নতুন ডেটা তৈরি করার জন্য), PUT (আপডেট করার জন্য), DELETE (ডেটা মুছতে)।
- URL পাথ: প্রতিটি রিসোর্সের জন্য একটি নির্দিষ্ট URL পাথ থাকে। যেমন
/users,/users/:idইত্যাদি।
সারাংশ
ExpressJS-এ REST API তৈরি করা খুবই সহজ এবং কার্যকর। এটি HTTP মেথড (GET, POST, PUT, DELETE) ব্যবহার করে ডেটা হ্যান্ডলিং এবং CRUD অপারেশন সম্পাদন করতে সক্ষম। REST API Stateless আর্কিটেকচারের উপর ভিত্তি করে কাজ করে, যেখানে প্রতিটি রিকোয়েস্ট স্বাধীন এবং URL পাথের মাধ্যমে নির্দিষ্ট রিসোর্সগুলোর সাথে কাজ করা হয়। ExpressJS-এ API তৈরি করার জন্য আপনাকে রাউট সেটআপ করতে হবে এবং HTTP মেথড ব্যবহার করে সঠিক অপারেশন সম্পাদন করতে হবে।
Read more