API Versioning Explained

API Versioning in Express.js

API Versioning হলো একটি production-ready Express.js API তৈরির গুরুত্বপূর্ণ অংশ। এর মাধ্যমে পুরোনো client না ভেঙে নতুন feature বা breaking change যুক্ত করা যায়।

📌 API Versioning কী?

API Versioning হলো একই API-এর একাধিক সংস্করণ (v1, v2, v3 ইত্যাদি) একসাথে পরিচালনা করার কৌশল। এতে করে নতুন API পরিবর্তন হলেও পুরোনো application স্বাভাবিকভাবে কাজ করতে পারে।

🤔 কেন API Versioning দরকার?

  • পুরোনো client বা mobile app ভেঙে যাওয়া থেকে রক্ষা করে
  • Breaking change নিরাপদভাবে introduce করা যায়
  • একাধিক client-কে আলাদা version serve করা যায়
  • Production API maintain করা সহজ হয়

🔧 API Versioning করার জনপ্রিয় পদ্ধতি

1️⃣ URL Versioning (সবচেয়ে জনপ্রিয়)

URL-এর মধ্যেই version উল্লেখ করা হয়।

/api/v1/users
/api/v2/users
          

2️⃣ Query Parameter Versioning

Query string এর মাধ্যমে version পাঠানো হয়।

/api/users?version=1
/api/users?version=2
          

3️⃣ Header Versioning

HTTP Header ব্যবহার করে version নির্ধারণ করা হয়।

Accept: application/vnd.myapi.v1+json
          

4️⃣ Media Type Versioning

Content-Type বা Accept header-এর মাধ্যমে version নির্ধারণ।

Content-Type: application/vnd.api.v2+json
          

🚀 Express.js-এ URL Versioning (Best Practice)

const express = require('express');
const app = express();

// Version 1
app.get('/api/v1/users', (req, res) => {
  res.json({
    version: 'v1',
    users: ['Rahim', 'Karim']
  });
});

// Version 2
app.get('/api/v2/users', (req, res) => {
  res.json({
    version: 'v2',
    users: [
      { name: 'Rahim', age: 25 },
      { name: 'Karim', age: 30 }
    ]
  });
});

app.listen(3000, () => {
  console.log('Server running on port 3000');
});
      

📂 Recommended Folder Structure

src/
 ├── routes/
 │   ├── v1/
 │   │   └── user.routes.js
 │   └── v2/
 │       └── user.routes.js
 ├── app.js
 └── server.js
      

✅ Best Practices

  • সবসময় v1 দিয়ে শুরু করুন
  • Breaking change হলে নতুন version তৈরি করুন
  • পুরোনো version deprecate করার আগে notice দিন
  • Folder-based versioning maintain করা সহজ
👼 Quiz
/

লোড হচ্ছে...