Programming Programming Knowledge

API কি? একটা ভাতের হোটেল!!

April 6, 2018
A picture depicting a hotel

কিছু দিন আগে রাফাত আমার কাছে আসলো। বলল, “ভাই, আমি API জিনিসটা সম্পর্কে কিছুই বুঝি নাহ। আমার চারদিকে সবাই খালি API…API করে… আর আমি বলদের মতন করে তাকিয়ে থাকি!!”
ওর কথা শুনে উত্তর না দিয়ে উল্টা জিজ্ঞেস করলাম, “দুপুরে ভাত খাইসো?”
বলল, “জি। খাইসি, আম্মা বাসায় নাই তাই হোটেল এ গিয়া খাইসি।”
আমিঃ “তাহলে তো তুমি জানোই API কি! শুধু শুধু কেন বলো তুমি জানো নাহ?”

আমার কথা শুনে বেচারা খুব ভ্যাবাচ্যাকা খাইয়া গেল! বলল, “ধুর মিয়া! ভাত খাওয়ার সাথে API এর কি সম্পর্ক?”
আমিঃ “ভাত খাওয়ার সাথে নাহ, হোটেল এর সাথে সম্পর্ক।”
রাফাতঃ “কেমনে?!! একটু বাংলায় বলেন; এইভাবে দার্শনিক ভাবে বললে তো বুঝব নাহ!”
আমিঃ “দেখ, আমি তোমাকে আগেই বলসিলাম প্রোগ্রামিং এর বিভিন্ন কনসেপ্ট গুলা আসমান থেকে আসে নাই। এইগুলা আমাদের আসে পাশের সমাজের বিভিন্ন জিনিস থেকে নিয়ে বানান হইসে। এইখানে কাজের দিক থেকে API আর হোটেল এর মধ্যে বেশ মিল আসে।”

রাফাতঃ “কি ধরনের মিল?”
আমিঃ “যেমন ধরো, তুমি হোটেলে গিয়া বলস তোমারে ভাত দিতে সাথে তরকারি আর ডিম দিতে। হোটেলের লোক তোমাকে ভাত, তরকারি, ডিম আইনা দিসে। তুমি কিন্তু একটাবার ও জানতে চাও নাই সে এই গুলা কই থেকে পাইসে অথবা কিভাবে বানাইসে। তোমাকে রান্না করে দিসে তুমি খালি খাইসো। কিন্তু খোঁজ নিলে দেখবা সে হয়তো সকালে বাজার থেকে ডিম কিনসে, দুপুর হবার আগেই ভাত/তরকারি রান্না করে রাখসে। তুমি যখন অর্ডার দিস তখন হয়তো ডিমটা ভেজে বাকি সব একসাথে করে তোমাকে পরিবেশন করসে।”

রাফাতঃ “তার মানে বলতে চাইতেসেন API ও একই রকমে কাজ করে?”
আমিঃ “ ঠিক তাই। আমরা যখন কোন API এর কাছে কিছু data চাই ও তখন আমাদেরকে অই data ওর ডাটাবেস থেকে অথবা অন্য কোনভাবে রেডি করে দেয়।”
রাফাতঃ “শুধু এইটুকু কাজই করে API। খালি data দেয়?”
আমিঃ “তো API এর কাছে আর কি আশা করো? ও তোমাকে ভাত চাইলে ভাত দিবে এইটা চাও?”

রাফাতঃ “না, তা বুঝাই নাই! মানে ব্যাপারটা এতটা সিম্পল চিন্তা করি নাই।”
আমিঃ “এখন এইখানে আরো কিছু ব্যাপার আছে। যেমন ধর, তুমি ডিম চাইসো হোটেলে, কিন্তু ডিম না থাকলে ওরা তোমাকে দিতে পারবে নাহ। আবার এমন কিছু চাইসো যেটার নামই কোনোদিন শুনে নাই, অই টাও দিবে নাহ।”
রাফাতঃ “তারমানে API এর কাছে যেই data চাইলাম, ওইটা ওর কাছে না থাকলে, API ওইটা দিতে পারবে নাহ।”
আমিঃ “একদম ঠিক।”

আমিঃ “API এর কাছে data চাওয়ার ক্ষেত্রেও কিছু নিয়ম আছে। তুমি তোমার মতন করে চাইলেই হবে নাহ। ও যেই ভাবে এক্সপেক্ট করে পুরাপুরি ওই ভাবেই তোমার চাইতে হবে। তাহলে দিবে নাহলে দিবে নাহ।”
রাফাতঃ “API কিভাবে চায়, ওইটা আমি কিভাবে জানব!!?”
আমিঃ “এই রুল গুলা সেট করে যারা ওই API টা বানাচ্ছে তারা। এই জন্য দেখবা যখনই কোন কোম্পানির কাছে ওদের API এর অ্যাক্সেস চাও তখন তোমাকে একটা ডকুমেন্টেসন (Documentation) ধরায়ে দিসে। ওইখানে লিখা থাকে কিভাবে চাইতে হবে এবং কি কি ধরনের data চাইতে পারবা।”

রাফাতঃ “বুঝলাম ব্যাপারটা! কিন্তু আরেকটা জায়গায় খটকা লাগসে এখন!”
আমিঃ “কি?”
রাফাতঃ “আপনি তো সব সময় বলেন, কম্পিউটার খুবই বোকা। তাহলে কম্পিউটার বুঝে কিভাবে যে API থেকে যেই data চাইসি ওইটা দিসে অথবা দিবে নাহ ?”
আমিঃ “এইটা বুঝার জন্য কিছু কিছু স্পেশাল কোড ব্যবহার করে। এইটাকে HTTP Status Code বলে। যদি data যেটা চাইসো ওইটাই দিতে পারে তাহলে এক রকমের status code দেয়। আবার যদি না থাকে তাহলে আরেক রকমের status code তোমাকে দিবে। আবার তোমার অ্যাক্সেস না থাকলে আরেক রকমের status code দিবে। কোন কাজের জন্য কোন ধরনের status code দিবে তা ঠিক করা আছে। সকল প্রোগ্রামাররা তা মেনেই API বানায়।”

রাফাতঃ “এই status code দেখতে কেমন হয়?”
আমিঃ “ওইটা আরেকদিন বলব। আপাতত যা যা বলসি তা মাথায় ঢুকাও। অনেক ক্ষুধা লাগসে চলো ভাত খাইয়া আসি।”
রাফাতঃ “ভাই, আমি তো খাইসি। আপনি খাইয়া আসেন।”
আমিঃ “আরে, চলো! আরেকবার খাইলা… জীবন তো একটাই।”

তারপরে আর কি?! ২ জন মিলে কাচ্চি খাইলাম।

P:S: This post was originally posted in Medium.com.

You Might Also Like

No Comments

Leave a Reply