API কেন ব্যবহার করা হয়? (what is API)

API কি ? API কেন ব্যবহার করা হয়?

আজকে আমরা আলোচনা করব API কি?(what is API)। ইপিআই(API) অর্থ হচ্ছে application programming interface.

API কি সেটা বোঝার আগে একটি উদাহরণ দেওয়া যাক। ধরুন আপনি একটা কোম্পানি চালান। সেই কোম্পানির জন্য একটি ওয়েবসাইট তৈরি করলেন। ওয়েবসাইটি তৈরি করার পর আপনি খেয়াল করলেন যে আপনার বেশিভাগ কাস্টমার ওয়েবসাইট ব্যবহার করতে পছন্দ করে না। তাদের একটি মোবাইল অ্যাপ্লিকেশন দরকার ।

তো আপনি একটি মোবাইল অ্যাপ্লিকেশন বানাতে গেলেন। আপনার কোম্পানির মে ডাটাগুলো আছে সেগুলো দিয়ে একটি মোবাইল অ্যাপ্লিকেশন তৈরি করবে। আপনার server-side এর যে লজিক আছে সেগুলো দিয়ে একটি মোবাইল অ্যাপ্লিকেশন বানাবেন।

কিন্তু  ওই একই সার্ভার এবং একই ডাঁটা দিয়ে মোবাইল অ্যাপ্লিকেশন বানাইতে গেলেন। তখন কি হলো আপনার মোবাইলেও সার্ভারের এইচটিএমএল জাভাস্ক্রিপ্ট সিএসএস রিটার্ন করে। অর্থাৎ যখন আপনি সার্ভারে রিকুয়েস্ট পাঠান তখনই সার্ভার HTML JavaScript CSS ডাটা পাঠায়। কিন্তু এগুলো তো আপনার দরকার না। এগুলো দিয়ে আপনি মোবাইল ফোনে কি করব।

আবার আরেকটা  বিষয় চিন্তা করেন যে আপনার কোম্পানি অনেক বড় হয়ে গেল। আর আপনার কোম্পানী থেকে অনেকগুলো সাব কোম্পানি তৈরি হলো।

এই সাব কোম্পানিগুলোতে আপনার কাস্টমারদের কিছু কিছু ডাটা এক্সেস দিবেন। যে, যদি উনি আমার কাস্টমার হয় আপনি উনাকে এত শতাংশ করে ছাড় দিবেন। কিন্তু এটার জন্য তো আপনার কাস্টমারের ইনফর্মেশন ওদেরকে দিতে হবে। সেটাই বা আপনি কিভাবে দিবেন।

এই দুইটা সমস্যার সমাধান আমরা একটা মাধ্যমে দিতে পারেন। সেটা হচ্ছে API(application programming interface). কিন্তু কিভাবে? ওকে আমি ভেঙ্গে বলি।

ওয়েবসাইট বানানোর ক্ষেত্রে সার্ভার থেকে আমরা কী করি। সার্ভার মূলত আমাদের HTML JavaScript CSS ফাইল তৈরি করে  দে। কিন্তু আমরা যদি এইচটিএমএল জাভাস্ক্রিপ্ট সিএসএস এর পুরো ফাইলটা না নিয়ে সার্ভার থেকে শুধু এইটুকুই ডাটা নেই যেটুকু ডাটা আমাদের দরকার, তাহলে কেমন হয়?

মনে করুন  প্রোফাইল পেজের জন্য ইমেজ লাগবে  তাহলে শুধু  ইমেজের  লিংকট নিব। নাম লাগবে তাহলে শুধু নামটা নিব কয়জন ফ্রেন্ড আছে শুধু ফ্রেন্ডলিস্ট নিব। এই অল্প কিছু ডাটা লাগবে এগুলাই শূধু নিব।। পুরো এইচটিএমএল সিএসএস জাভাস্ক্রিপ্ট ফাইল না নিয়ে শুধুমাত্র যে যে কনটেন্টগুলো আমার লাগবে সেগুলোর ডাটা নিব।

যখন একটা সার্ভার এরকম  ভাবে শুধু প্রয়োজনীয় কনটেন্ট গুলো শেয়ার করবে তখন শেয়ার করার এই পুরো প্রক্রিয়াটাকে বলা হয়  API।

এখন চিন্তা করেন যে আপনার একটা সার্ভার আছে। যেটাতে একটা এপিআই জেনারেট করা যায়। আরেকটা সার্ভার আছে যেখানে ওয়েবসাইট আছে। ওয়েবসাইটা আপনি নরমালি ডিজাইন করলেন। ডিজাইন করার পরে এই যে ডাটা গুলো আপনার সার্ভার থেকে আসছে সেই সার্ভার ডাটা গুলো দিয়ে আপনি ওয়েবসাইটা ফিলাপ করে দিলেন। অর্থাৎ যেখানে নাম দরকার সেখানে নাম বসিয়ে দিলেন। যেখানে ইমেজ দরকার সেখানে ইমেজ বাসায় দিলেন। যেখানে  যা যা দরকার সেখানে আপনি তা তা বসিয়ে দিলেন।

ঠিক একই ডাটা ব্যবহার করে আপনি আপনার মোবাইল ফোনের অ্যাপ্লিকেশন তৈরি করে ফেললেন। তখন আর এইচটিএমএল জাভাস্ক্রিপ্ট সিএসএস আসছে না। আপনার যা যা দরকার যেই ডাটা গুলো দরকার ছিল সেগুলোই আসছে।

আবার যখন আপনার সাব কোম্পানিগুলো আপনার কাছ থেকে ইনফরমেশনটা চাইলো। তখন আপনি এই একই এপিআই একই লিনক  তাদেরকে দিয়ে বললেন যে  আপনারা এই লিঙ্কটি ব্যবহার করেন তাহলে আমার প্রয়োজনীয়  সব ডাটা পেয়ে যাবেন।

ঠিক যতটুকু আপনার এক্সেস  দেওয়া দরকার ঠিক ততটুকুই আপনি এক্সেস দিলেন। যে মনে করুন আপনি তাদেরকে নির্দিষ্ট কোন পেইজ  অ্যাক্সিস দিবেন। এক জায়গায় দিলেন গেজেট পোস্ট এক জায়গায় রিভিউ পোস্ট।

 এর বেশি আপনি কিছু পাবেন না। আপনি এই জায়গা থেকে গেট রিকোয়েস্ট করতে পারবেন এই এই জায়গায় পোস্ট রিকোয়েস্ট করতে পারবা। আপনি চাইলেও কখনো আপনার পাসওয়ার্ড চেঞ্জ করতে পারবেন বা আপনার ইমেইল চেঞ্জ করতে পারবেন না কিন্তু আপনার নাম চেঞ্জ করতে পারবেন। এরকম অ্যাক্সেস দিতে পারবেন। আপনি যতটা চান প্রাইভেসি আপনি তা আপনার পেইজে দিতে পারেন।

যদি আমি এখন real-world এক্সাম্পল এর কথা বলি। তাহলে প্রথম যেই এক্সাম্পল টা মাথায় আসবে সেটা হচ্ছে আপনারা বিভিন্ন ওয়েবসাইটে গেলেই দেখবেন যে সাইনআপ করতে বলে অথবা সাইন ইন উইথ গুগোল সাইন ইন উইডথ ফেইসবুক ইত্যাদি।

ধরুন আমি কোথাও একটি ওয়েবসাইটে  অ্যাকাউন্ট  খুলতে চাচ্ছি । কিন্তু সেখানে বলতেছে you can log in with Facebook account . এখন আমার যদি একটি ফেসবুক অ্যাকাউন্ট থাকেই এবং সে একাউন্ট দিয়ে তাদের ওখানের লগইন করি তাহলে তাদের কি লাভ? কোন কি আদৌ লাভ আছে?

অবশ্যই আছে। আসলে এই ব্যবহারটা তৈরি করা হয়েছে ইউজারদের কে প্যারা মুক্ত করার জন্য। দুনিয়ার যতগুলো ওয়েবসাইট আছে সব ওয়েবসাইটগুলোতে যাব, রেজিস্ট্রেশন করব ইমেইল পাসওয়ার্ড মাথায় রাখবো, তারপর ভেরিফিকেশন করতে হবে মোবাইল ভেরিফিকেশন ইমেইল ভেরিফিকেশন ইত্যাদি ইত্যাদি।

সব মাথায় রাখ, কোন ইমেইল দিয়ে কোন একাউন্ট খুলছিলাম কোন নাম্বার দিয়েছিলাম কি পাসওয়ার্ড দিছিলাম। এত কিছু যেন মনে রাখতে না লাগে তার জন্যই এই ব্যবস্থাটা করা হয়েছে।

আপনার যদি ফেসবুকের অ্যাকাউন্ট থাকে তাহলে অবশ্যই ফেসবুক অ্যাকাউন্ট খোলার সময় আপনার ভেরিফিকেশন নিয়েছে। তো এখন ওই একই ইনফর্মেশন তারা ব্যবহার করে আপনার অ্যাকাউন্ট তৈরি করবে।

কিন্তু ফেসবুকে এই ইনফর্মেশন গুলো কেন দিবে। ফেসবুক দিবে কারণ ফেসবুকের ও এখানে একটা বিজনেস আছে। ফেসবুকের প্রচার বাড়তেছে। তখন ফেসবুক কি করলো তারা একটা API তৈরি করে দিল। এবং তাদের এই API ব্যবহার করে ফেসবুকের ইউজার দের কিছু ইনফরমেশন এক্সেস নিয়ে থাকে। সেক্ষেত্রে ফেসবুক বলে দে যে যদি ইউজারের কাছে পারমিশন পান সে ক্ষেত্রে কিছু কিছু তথ্য পাইতে পারেন  যেমন ফেসবুক প্রোফাইল পিক কভার ফটো এরকম কিছু কিছু ইনফরমেশন ফেসবুকের কাছ থেকে নিতে পারবে। এর থেকে বেশি কিছু পাবেনা।

যে ইনফরমেশনগুলো ফেসবুক তাদেরকে অ্যাক্সিস দিচ্ছে সেই ইনফরমেশন গুলো সেই ওয়েবসাইট গুলোর জন্যে যথেষ্ট।

একটা ওয়েবসাইটের একাউন্ট করার  জন্য সাধারণত কি দরকার? একটা নাম দরকার একটা প্রোফাইল পিক ইমেইল দরকার জন্মতারিখ দরকার, এগুলো তারা ফেসবুক থেকেই নিয়ে নিচ্ছে। ফলে আপনাকে আবার নতুন করে তাদের ওয়েবসাইটে রেজিস্ট্রেশন করতে হচ্ছে না। যখন ওয়েবসাইটটি ফেসবুক থেকেই ডাটাগুলো পেয়ে গেল তখন তারা তাদের ডাটাবেজে ইনফরমেশনগুলো যুক্ত করবে। যাতে পরবর্তীতে আমি যখন তাদের ওয়েবসাইটে লগইন করবো তখন নতুন করে আবার যেন একাউন্টস না খুলতে হয়। এই হচ্ছে প্রধানত এপিআই এর কাজ।

বর্তমানে যে এপিআই  টা বেশি চলছে সেটা হচ্ছে রেস্ট এপিআই। আমরা এতক্ষন যে আলোচনা করলাম মূলত সেটা হচ্ছে রেস্ট এপিআই। আশা করি API কি ? API কেন ব্যবহার করা হয়? বুঝতে পারছেন। কোথাও যদি বোঝার সমস্যা হয় তাহলে অবশ্যই কমেন্ট করে জানাবেন। ধন্যবাদ