Let's Build a Better API: Common Mistakes to Avoid

Let's Build a Better API: Common Mistakes to Avoid

হ্যালো, ডেভস! আশা করি ভালোই আছেন। অবশ্য নাও থাকতে পারেন, কারণ REST API নিয়ে কাজ করতে গিয়ে REST এর আর সুযোগ হয় কই? কোনো না কোনো প্যাঁচ তো লেগেই থাকে! API এন্ডপয়েন্ট বানাতে হিমশিম খাওয়া, ডেডলাইনে এসে ডকুমেন্টেশন লিখতে গিয়ে কোডের আগা-মাথা খুঁজে না পাওয়া! কত্ত প্যারা! এসব তো কিছুই না, প্রবলেমের লিস্ট বানাতে গেলে এর চেয়েও বড় বড় প্রবলেমও আসবে!

না না, ভয় পাবেন না। কিছু মিস্টেক আছে যেগুলো এভয়েড করতে পারলে বাই-ডিফল্ট অনেক সমস্যা সৃষ্টি হওয়ার আগেই নাই হয়ে যাবে। তো চলুন সেগুলো জেনে নেয়া যাক -

Mistake #1: Over-abstracting

ধরুন আপনি একটি ক্রিকেট অ্যাপের জন্য API ডিজাইন করছেন। আপনি চিন্তা করলেন, "একটা সুপার-ফ্লেক্সিবল API বানানো যাক যেটা যেকোনো ধরনের sports এর ডাটা হ্যান্ডেল করতে পারবে"। দাঁড়ান, ডেভেলপার সাহেব দাঁড়ান। অতিরিক্ত অ্যাবস্ট্রাকশন ভালো না। এটা আপনার এপ্লিকেশনে আম গাছে আটকে পড়া সেই ঘুড়ির চেয়েও জটিল প্যাঁচ লাগাবে।

পরিবর্তে, নির্দিষ্ট এপ্লিকেশনের context এর মধ্যে reusability তে ফোকাস করুন। এক্ষেত্রে আপনার ক্রিকেট এপের ফাংশনালিটির কথা চিন্তা করুন - প্লেয়ারের stats ফেচ করা, টীম ম্যানেজ করা এসবের কথা মাথায় রেখে API Endpoint ডিজাইন করুন। এতে বিষয়গুলো ক্লিয়ার আর ফোকাসড থাকবে।

Mistake #2: Documentation? এহ, এটার কি দরকার?

ধরুন আপনার কলিগ আপনার আন-ডকুমেন্টেড API ব্যবহার করার চেষ্টা করছেন। ব্যাপারটা কেমন জানেন? GPS ছাড়া ঢাকার ট্রাফিক জ্যাম এড়িয়ে ড্রাইভ করার ব্যর্থ চেষ্টার মতো। তাই Smooth Collaboration এর জন্য ক্লিয়ার ডকুমেন্টেশন প্রয়োজন যেখানে request body, response body structure, request parameters, response code এবং যদি এরর হয় তাহলে error code ইনক্লুড থাকে।

একটি ভালো ডকুমেন্টেশন অনেক দিন পর ফেভারিট দোকানের এক কাপ চায়ে চুমুক দেয়ার মতো রোমাঞ্চকর এক্সপেরিয়েন্স দেয়।

আর হ্যাঁ, সব ডকুমেন্টেশন একসাথে করতে গেলেও ব্রেইন টেম্পারেচার হাই হয়ে যাবে। তাই, একটা API বানানো হয়ে গেলে সাথে সাথে ডকুমেন্টেশন করে ফেলবেন।

Mistake #3: HTTP Method তো একটা হলেই হলো!

REST API বিভিন্ন কাজের জন্য HTTP মেথডের (GET, POST, PUT & DELETE) এর উপর নির্ভরশীল। কিন্তু মাঝেমধ্যে ডেভেলপাররা কনফিউসড হয়ে যায়। ধরুন, কেউ প্লেয়ারের ডাটা ফেচ করার জন্য POST মেথড ব্যবহার করছে! ব্যাপার টা কেমন হবে? যেন কেউ কাঁটা চামচ দিয়ে বিরিয়ানি খাওয়ার চেষ্টা করছে! তাই না? এও কি সম্ভব?

প্রপার HTTP মেথড ফলো করলে API অর্থপূর্ণ ও প্রেডিক্টেবল হয়। ক্লায়েন্ট-সাইডে ডাটা ফেচ করে নেয়ার জন্য GET মেথড ব্যবহার করতে হয়, নতুন রিসোর্স তৈরি করতে POST মেথড ব্যবহার করতে হয়, এক্সিস্টিং ডাটা আপডেট করার জন্য PUT মেথড এবং ডিলেট করার জন্য DELETE মেথড ব্যবহার করতে হয়। এভাবে সবসময় পার্ফেক্ট মেথড ব্যবহার করে API বানালে সেটা বোঝার জন্য কারও ম্যানুয়েল লাগবে না।

Building a Better API

এই কমন মিস্টেকগুলো এভয়েড করে আমরা এমন API ডিজাইন করতে পারবো যেটা user-friendly, scalable, এবং সেটা আমাদের কোডিং স্কিলের প্রমাণ বহন করবে। Remember, একটি well-designed API হলো একটি পাওয়ারফুল অ্যাপ্লিকেশনের ফাউন্ডেশন। API স্ট্রং হলে ফ্রন্টেন্ড - ব্যাকেন্ড এর কানেকশনও মজবুত হয়। তাই, কোন মিস্টেক করা যাবে না। Happy Better Coding <3