ExpressJS দিয়ে RESTful API তৈরি করা খুবই সহজ এবং দ্রুত। REST (Representational State Transfer) একটি আর্কিটেকচারাল স্টাইল, যা HTTP প্রোটোকল ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা আদান-প্রদান করার জন্য ওয়েব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে। ExpressJS-এর মাধ্যমে আপনি HTTP মেথডগুলো (GET, POST, PUT, DELETE) ব্যবহার করে একটি পূর্ণাঙ্গ REST API তৈরি করতে পারেন।
১. ExpressJS অ্যাপ ইনস্টল করা
প্রথমে, একটি নতুন Node.js প্রোজেক্ট তৈরি করুন এবং ExpressJS ইনস্টল করুন।
Step 1: নতুন Node.js প্রোজেক্ট তৈরি
mkdir express-rest-api
cd express-rest-api
npm init -y
Step 2: ExpressJS ইনস্টল করা
npm install express
এখন, ExpressJS ইনস্টল হয়ে যাবে এবং আপনার node_modules ফোল্ডারে থাকবে।
২. ExpressJS অ্যাপ তৈরি করা
এখন, একটি app.js ফাইল তৈরি করুন, যা REST API সার্ভ করবে।
উদাহরণ: app.js
const express = require('express');
const app = express();
const port = 3000;
// Middleware - JSON ডেটা পার্স করার জন্য
app.use(express.json());
// GET রাউট
app.get('/api/hello', (req, res) => {
res.json({ message: 'Hello, World!' });
});
// POST রাউট
app.post('/api/users', (req, res) => {
const { name, email } = req.body;
res.status(201).json({
message: 'User created successfully!',
user: { name, email }
});
});
// PUT রাউট
app.put('/api/users/:id', (req, res) => {
const { id } = req.params;
const { name, email } = req.body;
res.json({
message: `User with ID ${id} updated successfully!`,
user: { name, email }
});
});
// DELETE রাউট
app.delete('/api/users/:id', (req, res) => {
const { id } = req.params;
res.json({ message: `User with ID ${id} deleted successfully!` });
});
// সার্ভার চালু করা
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
এখানে:
- GET:
/api/helloরাউটটি একটি সাধারণ বার্তা পাঠাবে। - POST:
/api/usersরাউটটি ব্যবহারকারীর তথ্য গ্রহণ করে এবং তাকে সফলভাবে তৈরি করার একটি সাড়া পাঠাবে। - PUT:
/api/users/:idরাউটটি ব্যবহারকারীর তথ্য আপডেট করবে (উল্লেখযোগ্য ID দিয়ে)। - DELETE:
/api/users/:idরাউটটি একটি ব্যবহারকারী মুছে ফেলবে।
৩. ExpressJS API রাউটিং ও হ্যান্ডলিং
ExpressJS-এ RESTful API তৈরি করার জন্য বিভিন্ন HTTP মেথড (GET, POST, PUT, DELETE) ব্যবহার করা হয়। রাউটগুলো হল:
- GET: তথ্যের জন্য রিকোয়েস্ট পাঠানোর জন্য ব্যবহৃত হয়।
- POST: নতুন তথ্য তৈরি করার জন্য ব্যবহৃত হয়।
- PUT: বিদ্যমান তথ্য আপডেট করার জন্য ব্যবহৃত হয়।
- DELETE: বিদ্যমান তথ্য মুছে ফেলার জন্য ব্যবহৃত হয়।
উদাহরণ:
GET: ডেটা ক্লায়েন্ট থেকে সার্ভারে আনার জন্য।
app.get('/api/items', (req, res) => { // ডেটা ফেরত পাঠানো });POST: নতুন ডেটা তৈরি করা।
app.post('/api/items', (req, res) => { const newItem = req.body; // POST ডেটা // নতুন আইটেম তৈরি করা res.status(201).json(newItem); });PUT: বিদ্যমান আইটেম আপডেট করা।
app.put('/api/items/:id', (req, res) => { const { id } = req.params; // URL থেকে ID গ্রহণ const updatedItem = req.body; // PUT ডেটা // আইটেম আপডেট করা res.json(updatedItem); });DELETE: আইটেম মুছে ফেলা।
app.delete('/api/items/:id', (req, res) => { const { id } = req.params; // আইটেম মুছে ফেলা res.json({ message: `Item with ID ${id} deleted` }); });
৪. Error Handling
REST API-তে এরর হ্যান্ডলিং খুবই গুরুত্বপূর্ণ। আপনি try-catch ব্লক ব্যবহার করে বা next() মেথড দিয়ে কাস্টম এরর হ্যান্ডলার তৈরি করতে পারেন।
উদাহরণ: কাস্টম Error Handling Middleware
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).json({ message: 'Something went wrong!' });
});
এটি যখন কোনো রাউটের মধ্যে এরর হবে, তখন 500 Internal Server Error রেসপন্স পাঠাবে।
৫. REST API Testing
API-টি টেস্ট করার জন্য আপনি Postman বা CURL ব্যবহার করতে পারেন। উদাহরণস্বরূপ:
GET রিকোয়েস্ট:
GET http://localhost:3000/api/helloPOST রিকোয়েস্ট (Body JSON):
POST http://localhost:3000/api/users { "name": "John Doe", "email": "john@example.com" }PUT রিকোয়েস্ট:
PUT http://localhost:3000/api/users/1 { "name": "John Doe", "email": "john.updated@example.com" }DELETE রিকোয়েস্ট:
DELETE http://localhost:3000/api/users/1
৬. JSON Web Token (JWT) দিয়ে Authentication
আপনি JWT (JSON Web Token) ব্যবহার করে API তে নিরাপত্তা যোগ করতে পারেন। এটি সাধারণত ব্যবহারকারী লগইন, অথেন্টিকেশন এবং অথরাইজেশন চেক করার জন্য ব্যবহৃত হয়। JWT-এ ডেটা এনক্রিপ্ট করে নিরাপদে পাঠানো হয়।
সারাংশ
ExpressJS-এ REST API তৈরি করা খুবই সহজ এবং দ্রুত। আপনি HTTP মেথড (GET, POST, PUT, DELETE) ব্যবহার করে বিভিন্ন রাউট তৈরি করে ডেটা প্রক্রিয়া করতে পারেন। ExpressJS এর মাধ্যমে API তৈরি করে আপনি ওয়েব বা মোবাইল অ্যাপ্লিকেশনগুলির জন্য ডেটা সেবা প্রদান করতে পারেন। এই API-কে নিরাপদ এবং নির্ভরযোগ্য করার জন্য কাস্টম এরর হ্যান্ডলিং, JWT অথেন্টিকেশন ইত্যাদি ব্যবহার করা যেতে পারে।
Read more