ইন্টারভিউ প্রশ্ন : API কি ? Restful API কাকে বলে ?

API কি?
API এর পূর্ণ অর্থ হল এপ্লিকেশন প্রোগ্রামিং ইন্টারফেস। সোজা ভাষায় যা বোঝায় তা হল একটি প্রোগ্রামের সাথে আরেকটি প্রোগ্রামের তথ্য আদার প্রদানের মাধ্যমকে এপিআই বলা হয়।

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

এবার চলুন আরেকটু টেকনিকাল ভাষায় বিশ্লেষণ করা যাক ।

ধরা যাক আপনি একটি নতুন ওয়েব ক্যামেরা কিনেছেন স্কাইপে কথা বলার জন্য।স্কাইপ এপ্লিকেশনটি যা আপনার পিসিতে আছে তা কিন্তু ক্যামেরার কোম্পানী ,মডেল নাম্বার কিছুই চিনেনা।তাই সরাসরি এই ক্যামেরা ব্যবহার করে আপনি কোন ভিডিও কল করতে পারবেন না স্কাইপের মাধ্যমে।আর আপনার এই ক্যামেরা আর স্কাইপকে তখন নিজেদের ভিতর যোগাযোগ করতে ধরুন আপনার উইন্ডোজ অপারেটিং সিস্টেমটি একটি মাধ্যম তৈরী করে দেয়,এই তৈরী করা মাধ্যমকেই বলা হয় API।
এপিআই মুলত ৩ প্রকার –
১)ওয়েব সার্ভিস এপিআই
২)অপারেটিং সিস্টেম ফাংশনাল এপিআই
৩)হার্ডওয়ার এপিআই।

আমরা মুলত Restful API এবং SOAP API নিয়ে আলোচনা করব কারন সফটওয়ার ইঞ্জিনিয়ারিং-এর দুনিয়ায় এই দুটিই বেশি শোনা যাবে।

এপিআই কেন ব্যবহার করি আমরা –

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

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

আরো সোজা করে বললে বোঝায় যে API টি HTTP বা ইন্টারনেটের মাধ্যমে রিকুয়েস্ট পাঠিয়ে সার্ভারে কোন ডাটা বা রিসোর্স খুজে পাওয়া , তৈরী করা,আপডেট করা ,ডিলিট করা ইত্যাদি কাজ করে থাকে এবং কাজটি করার পর কাজটি সম্পূর্ণ হয়েছে কিনা তার একটি রিপোর্ট ক্লায়েন্টকে রেসপন্স হিসাবে দেয় তাকে রেস্টফুল এপিআই বলে।

রেস্টপন্স হিসাবে আমরা যেই রিপোর্টটি পাই তা টেকনিকাল ভাষায় একটি রেস্ট এপিআইয়ের রিসোর্স । রিসোর্স হিসাবে আমরা অবজেক্ট,এরে এমনকি স্কেলার (নাম্বার,স্ট্রিং,নাল,বুলিয়ান) পেয়ে থাকি।
আর রিপোর্টটি যেভাবে সাজানো থাকে তা হল তার রিপ্রেজেন্টেশন।রিপ্রেজেন্টেশন মুলত দুইভাবে হয়ে থাকে।
১) JSON representation.
২) XML representation.

আপনাকে অবশ্যই দুইটি জিনিস দিতে হবে আপনি যখন রেস্টফুলএপি আই নিয়ে কাজ করবেন।
১) রিসোর্সের ঠিকানা – আপনি যেই রিসোর্সটিকে খুজছেন তার URL মানে এটি সার্ভারের কোথায় আছে তার ঠিকানা।
২) HTTP মেথড – মানে আপনি আপনার রিসোর্সে কি অপারেশন চালাতে (ডাটা এড করা,ডিলিট করা,আপডেট করা ) চান তা বলে দেয়া । HTTP মেথডগুলো নিয়ে জানতে এখানে দেখতে পারেন

উদাহরণ
ধরুন আমি একটি সার্ভার থেকে ২নং ইউজারকে খুজে যেতে চাই তাই একটি GET রিকুয়েস্ট করলাম।যে এপিআইটি ডেভেলপ করেছে সেই ডেভেলপার ধরুন আমাকে আগেই বলে দেয়া বল যে সার্ভারের Base URL হল http://api.example.com/ মানে আমি যত ধরনেরই রিকুয়েস্ট করিনা যেন সার্ভারে তার শুরুতে এই Base URL টি সেম থাকবে।এরপর ধরুন সে বলে দিল আপনি বেজের পর /users.json?id= বসিয়ে কোন আইডি দিয়ে গেট রিকুয়েস্ট করলে সার্ভার রেসপন্স হিসাবে একটি রিসোর্স পাঠাবে যা হবে একজন ইউজার ।http://api.example.com/users.json?id=2 মানে বেজ ইউ আর এলের সাথে আমি /users.json?id= অংশটি নতুন যোগ করলাম এবং শেষে আমি যেহেতু ২নং ইউজারকে চাই তাই 2 দিলাম।মানে এখন এটি একটি রেস্ট ফুল এপিআইয়ের রিসোর্সের লোকেশন যেই রিসোর্সটি আসলে দুই নাম্বার ইউজার।
এখন ধরুন রেসপন্স হিসাবে আসলো নিচের রিসোর্সটি।

{
      id: 2,
      name: "John"
   }

এখানে এর রিপ্রেজেন্টেশন কিন্তু Json ।আমরা চাইলে তার XML রিপ্রেজেন্টেশনো দেখতে পারি।তার মানে যা দাড়ালো তা হল আমরা একটি রিসোর্সের স্টেট মানে ২নং ইউজারের বর্তমান অবস্থা একটি রিপ্রেজেন্টেশন মানে জেসনের মাধ্যমে রেসপন্স হিসাবে ক্লায়েন্টের কাছে মানে আমার কাছে যেভাবে যেই পদ্ধতিতে আসলো সেই পদ্ধতিটিই হলো রেস্টফুল এপিআই।
পরবর্তী পোস্টে আমরা SOAP API নিয়ে আলোচনা করব এবং Restful API এবং SOAP API এর তুলনা করে দেখবো।


ফেসবুক এ শেয়ার করুন

2 thoughts on “ইন্টারভিউ প্রশ্ন : API কি ? Restful API কাকে বলে ?

Leave a Reply

Your email address will not be published. Required fields are marked *