মোবাইল অ্যাপ সার্ভার থেকে ডেটা পাচ্ছে না, ফ্রন্টএন্ড প্রোডাক্ট আনতে পারছে না, আর API-র কোনো ডকুমেন্টেশন নেই? Swagger কন্ট্রাক্টসহ RESTful API এটি সমাধান করে: স্পষ্ট এন্ডপয়েন্ট, ভার্শনিং, JWT অথরাইজেশন এবং প্যাজিনেশন। ক্লায়েন্টরা কোনো প্রশ্ন ছাড়াই সংযুক্ত হয়।
RESTful API ডেভেলপমেন্ট হল REST নীতির উপর ভিত্তি করে সফটওয়্যার ইন্টারফেস তৈরি করা। স্পষ্ট এন্ডপয়েন্ট, স্ট্যান্ডার্ড HTTP মেথড, ভার্শনিং এবং Swagger ডকুমেন্টেশন। REST সিস্টেম ইন্টিগ্রেশনের সবচেয়ে জনপ্রিয় এবং পূর্বানুমানযোগ্য উপায় হিসেবে রয়ে গেছে।
রিসোর্স-ওরিয়েন্টেড আর্কিটেকচার — প্রতিটি এন্ডপয়েন্ট একটি রিসোর্স, GET/POST/PUT/DELETE মেথডগুলি পূর্বানুমানযোগ্যভাবে কাজ করে। Laravel এবং Node.js-এর জন্য REST API
Swagger / OpenAPI — ব্রাউজার থেকে সরাসরি যেকোনো মেথড কল করার ক্ষমতাসহ সম্পূর্ণ ডকুমেন্টেশন। ক্লায়েন্টরা কোনো প্রশ্ন ছাড়াই সংযুক্ত হয়
ভার্শনিং এবং প্যাজিনেশন — URL বা হেডারের মাধ্যমে v1, v2, v3। যেকোনো ডেটা ভলিউমের জন্য কার্সার এবং অফসেট-ভিত্তিক প্যাজিনেশন
অথেন্টিকেশন — JWT, OAuth2, API কী। রেট লিমিটিং, CORS, সাধারণ আক্রমণ থেকে সুরক্ষা
REST · JSON · OpenAPI · JWT · OAuth2 · Swagger
REST শুধু JSON-সহ URL নয়। আমরা RESTful আর্কিটেকচার নীতি অনুসরণ করি যাতে API পূর্বানুমানযোগ্য, স্কেলেবল এবং ক্লায়েন্টদের জন্য সুবিধাজনক হয়।
প্রতিটি সত্তা তার নিজস্ব URL (/users, /orders, /products) সহ একটি রিসোর্স। স্ট্যান্ডার্ড HTTP মেথড: পড়ার জন্য GET, তৈরি করার জন্য POST, আপডেটের জন্য PUT/PATCH, মুছে ফেলার জন্য DELETE।
YAML বা JSON ফরম্যাটে স্পেসিফিকেশন। ইন্টারঅ্যাকটিভ ডকুমেন্টেশনসহ Swagger UI। iOS, Android, Web-এর জন্য এক ক্লিকে ক্লায়েন্ট জেনারেশন।
স্টেটলেস অথেন্টিকেশনের জন্য JWT, বাহ্যিক সিস্টেমের সাথে ইন্টিগ্রেশনের জন্য OAuth2। পার্টনারদের জন্য API কী। প্রতিটি এন্ডপয়েন্টে রেট লিমিটিং।
REST ওয়েব ইন্টিগ্রেশনের জন্য ডি ফ্যাক্টো স্ট্যান্ডার্ড। পূর্বানুমানযোগ্য, সহজ, ডকুমেন্টেড। আমরা REST API এমনভাবে লিখি যাতে ফ্রন্টএন্ড এবং মোবাইল টিম সমান্তরাল এবং স্বাধীনভাবে কাজ করতে পারে।
REST API হল সিস্টেমের মধ্যে একটি কন্ট্রাক্ট। আমরা এটি এমনভাবে ডিজাইন করি যাতে এটি যেকোনো লোড এবং ভার্শনে পূর্বানুমানযোগ্যভাবে কাজ করে।
এন্ডপয়েন্ট ডিজাইন — API-first পদ্ধতি। প্রথমে OpenAPI-তে স্পেসিফিকেশন, তারপর কোড। ক্লায়েন্টরা সার্ভার প্রস্তুত হওয়ার আগেই ইন্টিগ্রেশন শুরু করে দেয়।
ভার্শনিং এবং সামঞ্জস্য — URL বা Accept হেডারের মাধ্যমে v1, v2। পুরনো ভার্শনের পিছনের দিকের সামঞ্জস্য — আপডেটে ক্লায়েন্টরা ভাঙে না।
মোবাইল অ্যাপের জন্য API — iOS এবং Android ক্লায়েন্টদের জন্য RESTful API, JWT অথেন্টিকেশন, পুশ নোটিফিকেশন এবং ডেটা সিঙ্ক্রোনাইজেশন।
প্যাজিনেশন এবং ফিল্টারিং — রিয়েল-টাইম ডেটার জন্য কার্সার, ঐতিহাসিক ডেটার জন্য অফসেট-ভিত্তিক। যেকোনো ফিল্ড দ্বারা সর্টিং, যেকোনো অ্যাট্রিবিউট দ্বারা ফিল্টারিং।
মনিটরিং এবং SLA — Prometheus মেট্রিক্স, রিকোয়েস্ট লগিং, রেসপন্স টাইম অতিক্রম করলে সতর্কতা। স্বচ্ছ উপলব্ধতা পর্যবেক্ষণ।
ওয়েব সার্ভিসের জন্য API — Laravel, Yii2, React এবং Vue.js ফ্রন্টএন্ডের সাথে REST API ইন্টিগ্রেশন। দ্রুত ইন্টিগ্রেশনের জন্য Swagger ডকুমেন্টেশন এবং SDK।
প্রথমে স্পেসিফিকেশন, তারপর কোড। ফ্রন্টএন্ড এবং মোবাইল টিম প্রস্তুত ডকুমেন্টেশন এবং মক সার্ভার পায়। ব্যাকএন্ড ডেভেলপমেন্টের সমান্তরালে ইন্টিগ্রেশন শুরু হয় — রিলিজ ৩০% দ্রুততর।
REST API অর্ডার করুন — যেকোনো ইন্টিগ্রেশনের জন্য একটি নির্ভরযোগ্য, ডকুমেন্টেড এবং নিরাপদ ইন্টারফেস পান।
আমরা ডেভেলপমেন্ট শুরুর আগে OpenAPI-তে এন্ডপয়েন্ট বর্ণনা করি। ফ্রন্টএন্ড এবং মোবাইল টিম প্রস্তুত ডকুমেন্টেশনে সমান্তরালভাবে কাজ করে।
প্রতিটি এন্ডপয়েন্ট লোডের অধীনে পরীক্ষা করা হয়: k6, wrk, পিক পরিস্থিতির সিমুলেশন। REST API কোনও অবনতি ছাড়াই ১০,০০০+ RPS হ্যান্ডেল করে।
URI- বা হেডার-ভিত্তিক ভার্শনিং। পিছনের দিকের সামঞ্জস্য: নতুন এন্ডপয়েন্ট যোগ করলে পুরনো ক্লায়েন্টরা ভাঙে না।
REST হল স্ট্যান্ডার্ড। আমরা APIs এমনভাবে ডিজাইন করি যে একজন নতুন ডেভেলপারও ৫ মিনিটে আর্কিটেকচার বুঝতে পারে। এন্ডপয়েন্টের একরূপতা, পূর্বানুমানযোগ্য ত্রুটি, স্পষ্ট স্ট্যাটাস। RESTful মানে পূর্বানুমানযোগ্য।