Express APIs নিয়ে আমার করা ৫টি প্রোডাকশন ভুল
API জটিল কোডের কারণে ভেঙে যায় না।
এগুলো ভেঙে যায় কারণ আপনি ছোটখাটো বিষয়গুলো এড়িয়ে যান।
বাস্তব প্রোডাকশন এরর থেকে আমি এই পাঁচটি শিক্ষা পেয়েছি।
- ডেটা দ্রুত ভ্যালিডেট করুন
আমি আগে আমার বিজনেস লজিকের ভেতরে ডেটা ভ্যালিডেট করতাম। এর ফলে মূল সোর্স থেকে অনেক দূরে বাগ (bug) দেখা দিত।
এখন আমি ভুল রিকোয়েস্টগুলো সাথে সাথে বাতিল করে দিই।
যদি কোনো রিকোয়েস্টে সঠিক ইমেল না থাকে, তবে সাথে সাথে একটি 400 error রিটার্ন করুন। ভুল ডেটাকে আপনার মেইন লজিকে পৌঁছাতে দেবেন না।
- নির্দিষ্ট এরর কোড ব্যবহার করুন
একটি সাধারণ 500 error কারো কোনো কাজে আসে না।
যদি API key কাজ না করে, তবে 401 error রিটার্ন করুন। যদি ইউজারের ক্রেডিট না থাকে, তবে 402 error রিটার্ন করুন।
যদি আপনাকে Slack-এ কোনো এরর ব্যাখ্যা করতে হয়, তবে বুঝতে হবে আপনার API মেসেজটি ব্যর্থ হয়েছে।
- আপনার middleware-এর ক্রম পরীক্ষা করুন
আমি অথেন্টিকেশন (authentication) সংক্রান্ত সমস্যা ডিবাগ করতে ঘণ্টার পর ঘণ্টা ব্যয় করেছি। সমস্যাটি ছিল আসলে আমার middleware-এর ক্রম নিয়ে।
এই ক্রমটি অনুসরণ করুন:
- প্রথমে CORS
- দ্বিতীয়ত JSON parsing
- তৃতীয়ত Authentication
- শেষে Routes
একটি ভুল লাইন সবকিছু নষ্ট করে দিতে পারে।
- সঠিক ডেটা লগ (log) করুন
আমি অনেক ধরনের লগিং স্টাইল চেষ্টা করেছি। যার বেশিরভাগই ছিল অকেজো।
সাধারণ ট্র্যাকিংয়ের জন্য method, path এবং status code লগ করুন।
এরর বা ভুলের ক্ষেত্রে request ID, error message এবং stack trace লগ করুন।
রাত ৩টার সময় ঘুম থেকে ওঠার পর এর বাইরে অন্য কিছু কেবল অপ্রয়োজনীয় নয়েজ (noise) ছাড়া আর কিছুই নয়।
- রেট লিমিট (rate limits) সেট করুন
আমি দেখেছি একটি endpoint এত বেশি হিট হয়েছে যে তাতে প্রকৃত অর্থের ক্ষতি হয়েছে।
লিমিট ছাড়া একটি API কেবল আশার ওপর নির্ভর করে। আর আশা কোনো সিকিউরিটি স্ট্র্যাটেজি নয়।
আপনার সার্ভার সুরক্ষিত রাখতে express-rate-limit ব্যবহার করুন।
বেশিরভাগ API ব্যর্থতার কারণ হলো মৌলিক বিষয়গুলো এড়িয়ে যাওয়া।
প্রোডাকশন আপনার পরিকল্পনা নিয়ে মাথা ঘামায় না। এটি কেবল আপনার সেটআপ নিয়ে কাজ করে।
উৎস: https://dev.to/manolito99/5-production-mistakes-that-changed-how-i-build-express-apis-133e