REST API Endpoints তৈরি করা

KoaJS এবং RESTful API Development - কোআজেএস (KoaJS) - Web Development

269

KoaJS হল একটি শক্তিশালী এবং লঘু Node.js ফ্রেমওয়ার্ক যা API ডেভেলপমেন্টের জন্য খুবই উপযোগী। RESTful API তৈরি করা KoaJS-এর মাধ্যমে সহজ এবং দ্রুত হতে পারে। এই টিউটোরিয়ালে, আমরা KoaJS ব্যবহার করে একটি REST API তৈরি করব, যা বিভিন্ন HTTP রিকোয়েস্ট (GET, POST, PUT, DELETE) হ্যান্ডল করবে।


১. KoaJS ইনস্টলেশন

প্রথমে, KoaJS অ্যাপ্লিকেশন শুরু করার জন্য প্রাথমিক প্যাকেজগুলি ইনস্টল করতে হবে। যদি আপনি নতুন প্রজেক্ট শুরু করেন, তাহলে একটি নতুন ডিরেক্টরি তৈরি করে নিচের কমান্ডটি চালান:

mkdir koa-rest-api
cd koa-rest-api
npm init -y
npm install koa koa-router koa-bodyparser

এখানে:

  • koa: মূল KoaJS ফ্রেমওয়ার্ক।
  • koa-router: রাউটিং হ্যান্ডলিংয়ের জন্য।
  • koa-bodyparser: POST বা PUT রিকোয়েস্টের বডি পার্স করার জন্য।

২. KoaJS REST API তৈরি করা

এখন, আমরা KoaJS অ্যাপ্লিকেশনে একটি REST API তৈরি করব যা CRUD অপারেশন (Create, Read, Update, Delete) হ্যান্ডল করবে।

২.১. প্রাথমিক KoaJS অ্যাপ তৈরি করা

const Koa = require('koa');
const Router = require('koa-router');
const bodyParser = require('koa-bodyparser');  // POST/PUT বডি পার্স করার জন্য
const app = new Koa();
const router = new Router();

// In-memory database (উদাহরণস্বরূপ)
let users = [
  { id: 1, name: 'John Doe', email: 'john@example.com' },
  { id: 2, name: 'Jane Doe', email: 'jane@example.com' }
];

// koa-bodyparser মিডলওয়্যার
app.use(bodyParser());

// GET all users
router.get('/users', async (ctx) => {
  ctx.body = users;
});

// GET single user by ID
router.get('/users/:id', async (ctx) => {
  const { id } = ctx.params;
  const user = users.find(u => u.id === parseInt(id));
  if (user) {
    ctx.body = user;
  } else {
    ctx.status = 404;
    ctx.body = { message: 'User not found' };
  }
});

// POST (Create new user)
router.post('/users', async (ctx) => {
  const { name, email } = ctx.request.body;
  const newUser = { id: users.length + 1, name, email };
  users.push(newUser);
  ctx.status = 201;
  ctx.body = newUser;
});

// PUT (Update existing user)
router.put('/users/:id', async (ctx) => {
  const { id } = ctx.params;
  const { name, email } = ctx.request.body;
  const userIndex = users.findIndex(u => u.id === parseInt(id));
  if (userIndex !== -1) {
    users[userIndex] = { id: parseInt(id), name, email };
    ctx.body = users[userIndex];
  } else {
    ctx.status = 404;
    ctx.body = { message: 'User not found' };
  }
});

// DELETE (Delete user)
router.delete('/users/:id', async (ctx) => {
  const { id } = ctx.params;
  const userIndex = users.findIndex(u => u.id === parseInt(id));
  if (userIndex !== -1) {
    const deletedUser = users.splice(userIndex, 1);
    ctx.body = deletedUser;
  } else {
    ctx.status = 404;
    ctx.body = { message: 'User not found' };
  }
});

// রাউট মাউন্ট করা
app
  .use(router.routes())
  .use(router.allowedMethods());

// অ্যাপ চালু করা
app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});

এখানে:

  1. GET /users: এই রাউটটি সমস্ত ইউজারকে রিটার্ন করবে।
  2. GET /users/:id: এই রাউটটি একটি নির্দিষ্ট ইউজারের তথ্য আইডি দিয়ে রিটার্ন করবে।
  3. POST /users: এই রাউটটি নতুন ইউজার তৈরি করবে এবং ইউজারের তথ্য রিটার্ন করবে।
  4. PUT /users/:id: এই রাউটটি একটি ইউজারের তথ্য আপডেট করবে।
  5. DELETE /users/:id: এই রাউটটি একটি ইউজার মুছে ফেলবে।

৩. CORS হ্যান্ডলিং (Optional)

যদি আপনার API কে অন্য ডোমেইন থেকে অ্যাক্সেস করতে চান, তাহলে CORS (Cross-Origin Resource Sharing) কনফিগার করতে পারেন। এর জন্য koa-cors ব্যবহার করা হয়।

npm install koa-cors

এরপর, koa-cors মিডলওয়্যার যোগ করা হবে:

const cors = require('koa-cors');
app.use(cors());

এটি সমস্ত রিকোয়েস্টের জন্য CORS পলিসি অনুমোদন করবে। আপনি কাস্টম CORS পলিসি কনফিগারও করতে পারেন যেমন কোন ডোমেইনকে অনুমতি দেওয়া হবে।


৪. Error Handling (ত্রুটি হ্যান্ডলিং)

API ত্রুটি হ্যান্ডলিং খুবই গুরুত্বপূর্ণ, যাতে ব্যবহারকারীরা পরিষ্কারভাবে ত্রুটি সম্পর্কে জানে। আমরা একটি কাস্টম ত্রুটি হ্যান্ডলিং মিডলওয়্যার তৈরি করতে পারি যা রিকোয়েস্টের ত্রুটি ধরবে এবং উপযুক্ত রেসপন্স প্রদান করবে।

app.use(async (ctx, next) => {
  try {
    await next();
  } catch (err) {
    ctx.status = err.status || 500;
    ctx.body = { message: err.message || 'Internal Server Error' };
  }
});

এটি সার্ভার সাইড ত্রুটিগুলি ক্যাচ করবে এবং ব্যবহারকারীদের জন্য একটি পরিষ্কার ত্রুটি বার্তা প্রদান করবে।


৫. API Testing (API টেস্টিং)

API ডেভেলপমেন্টের পর, API টেস্ট করা অত্যন্ত গুরুত্বপূর্ণ। আপনি Postman বা curl ব্যবহার করে API টেস্ট করতে পারেন।

৫.১. Postman দিয়ে টেস্ট করা

  • GET Request: /users
  • POST Request: /users (Body: { "name": "John", "email": "john@example.com" })
  • PUT Request: /users/1 (Body: { "name": "John Updated", "email": "johnupdated@example.com" })
  • DELETE Request: /users/1

৫.২. curl দিয়ে টেস্ট করা

# GET all users
curl http://localhost:3000/users

# POST a new user
curl -X POST http://localhost:3000/users -d '{"name": "Jane", "email": "jane@example.com"}' -H "Content-Type: application/json"

# PUT update a user
curl -X PUT http://localhost:3000/users/1 -d '{"name": "Jane Updated", "email": "janeupdated@example.com"}' -H "Content-Type: application/json"

# DELETE a user
curl -X DELETE http://localhost:3000/users/1

সারাংশ

KoaJS ব্যবহার করে একটি REST API তৈরি করা খুবই সহজ এবং কার্যকর। koa-router ব্যবহার করে বিভিন্ন রাউট তৈরি করা হয় এবং CRUD অপারেশন (Create, Read, Update, Delete) কাস্টমাইজ করা যায়। API টেস্টিং সহজভাবে Postman বা curl ব্যবহার করে করা যেতে পারে। এছাড়া, আপনি CORS কনফিগারেশন এবং Error Handling সহজে কনফিগার করতে পারবেন KoaJS-এ।

Content added By
Promotion

Are you sure to start over?

Loading...