এপিআই (অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস) হলো কিছু নির্ধারিত নিয়ম, যার মাধ্যমে এক সফটওয়্যার আরেকটির কাছে তথ্য চাইতে বা কোনো কাজ করতে বলতে পারে, মাঝখানে কোনো মানুষ ছাড়াই। আপনার ওয়েবসাইট, পেমেন্ট প্রোভাইডার, কুরিয়ার, হিসাবের সফটওয়্যার আর টিমের চ্যাট যদি এপিআই দিয়ে কথা বলতে পারে, তাহলে একবার লেখা অর্ডার যেখানে যাওয়া দরকার সেখানে নিজেই পৌঁছে যায়। না পারলে আপনার টিমের কেউ একজন নিজেই সেই সংযোগ হয়ে সারাদিন কপি-পেস্ট করেন।
সহজভাবে বোঝার একটি উপায়
কুরিয়ার অফিসের কাউন্টারের কথা ভাবুন। আপনি নিজে গুদামে ঢুকে পার্সেল ট্রাকে তুলে দেন না। কাউন্টারে যান, একটি নির্দিষ্ট ফর্ম পূরণ করেন (প্রেরক, প্রাপক, ঠিকানা, ওজন), বাকিটা কাউন্টারের লোকজন দেখেন। পরে একই কাউন্টারে জিজ্ঞেস করতে পারেন, "অমুক নম্বরের পার্সেল কোথায়?" আর একটি নির্দিষ্ট ধরনের উত্তর পান।
সফটওয়্যারের জন্য এপিআই হলো সেই কাউন্টার। এটি ঠিক করে দেয়:
- কী চাওয়া যাবে: অর্ডারের অবস্থা, আজকের পেমেন্টের তালিকা, গ্রাহকের তথ্য।
- কী করতে বলা যাবে: ডেলিভারি তৈরি, এসএমএস পাঠানো, ইনভয়েস যোগ।
- অনুরোধ কোন আকারে হবে: কোন কোন ঘর, কোন ফরম্যাটে।
- কে চাইতে পারবে: সাধারণত একটি গোপন কী বা লগইন টোকেন দিয়ে যাচাই হয়।
অন্য সফটওয়্যারের ভেতরের কাজকর্ম গোপনই থাকে। আপনি শুধু কাউন্টারটি ব্যবহার করেন।
যে উদাহরণগুলোর ওপর আপনি ইতিমধ্যে নির্ভর করেন
না দেখেও আপনি সম্ভবত রোজ এপিআই ব্যবহার করেন:
- ওয়েবসাইটে আপনার দোকানের ম্যাপ দেখালে সেটা একটি ম্যাপ সার্ভিসের এপিআই থেকে আসে।
- অনলাইন পেমেন্ট সফল হওয়ার সাথে সাথে ওয়েবসাইট অর্ডারটিকে "পরিশোধিত" দেখালে, পেমেন্ট গেটওয়ে এপিআই দিয়ে ওয়েবসাইটকে জানিয়েছে।
- অনলাইন শপের ভেতরেই কুরিয়ারের ট্র্যাকিং দেখা গেলে, শপটি কুরিয়ারের সিস্টেমের কাছে জানতে চেয়েছে।
- "গুগল দিয়ে লগইন" করলে দুটো সিস্টেম এপিআই দিয়ে কথা বলে।
সফটওয়্যারগুলোর একে অপরের সাথে কথা বলা কেন দরকার
বাংলাদেশের বেশিরভাগ ছোট ও মাঝারি ব্যবসা কয়েকটি টুলের মিশেলে চলে: ফেসবুক পেজ, হোয়াটসঅ্যাপ, একটি স্প্রেডশিট, হিসাবের প্রোগ্রাম, হয়তো একটি ওয়েবসাইট আর কুরিয়ার অ্যাকাউন্ট। প্রতিটিতে পুরো ছবির একটি অংশ থাকে। এগুলো যুক্ত না থাকলে তিনটি জিনিস ঘটে।
- দুবার এন্ট্রি। একই অর্ডার শিটে, কুরিয়ার পোর্টালে আর হিসাবে আলাদা করে টাইপ হয়। প্রতিবার টাইপে সময় যায়, আর ফোন নম্বর, অঙ্ক বা ঠিকানায় ভুলের সুযোগ তৈরি হয়।
- দেরি। কেউ হিসাব মিলিয়ে দিলে তবেই মালিক আজকের বিক্রি দেখেন, প্রায়ই রাতে বা পরের দিন।
- অমিল। শিট এক কথা বলে, হিসাব আরেক কথা, কোনটা ঠিক কেউ নিশ্চিত নন।
সিস্টেমগুলো যুক্ত থাকলে তথ্য একবারই, উৎসে, লেখা হয়, বাকিটা নিজে থেকে কপি হয়। কর্মীদের সময় টাইপ থেকে সরে যায় যাচাই আর গ্রাহকসেবায়।
"ইন্টিগ্রেশন"-এ কী কী লাগে
দুটো সিস্টেম জোড়া সবসময় এক সুইচের কাজ নয়। সাধারণত লাগে:
- ডকুমেন্টেশন। প্রোভাইডার প্রকাশ করে তার এপিআই কীভাবে কাজ করে। পরিষ্কার ডকুমেন্টেশন গুরুত্ব দিয়ে কাজ করা প্রোভাইডারের ভালো লক্ষণ।
- অ্যাক্সেস কী। গোপন তথ্য, যা প্রমাণ করে আপনার সিস্টেম সংযোগের অনুমতি পেয়েছে। এগুলো নিরাপদে রাখতে হয়, কখনো পাবলিক পেজে বা শেয়ার করা চ্যাটে নয়।
- ঘটনা জানার উপায়। হয় আপনার সিস্টেম নিয়মিত জিজ্ঞেস করে ("নতুন পেমেন্ট এসেছে?"), নয়তো অন্য সিস্টেম কিছু ঘটলেই সাথে সাথে খবর পাঠায়, যাকে প্রায়ই ওয়েবহুক বলা হয়।
- ঘর মেলানো। এক সিস্টেমের কোন ঘর আরেকটির কোন ঘরের সাথে মিলবে, যেমন আপনার অর্ডার ফর্মের "জেলা" আর কুরিয়ারের সিস্টেমের "এলাকা"।
- সমস্যা সামলানো। অন্য সিস্টেম বন্ধ থাকলে, লোডশেডিংয়ে ইন্টারনেট চলে গেলে বা অনুরোধ বাতিল হলে কী হবে। ভালো ইন্টিগ্রেশন আবার চেষ্টা করে, ব্যর্থতা লিখে রাখে আর একজন মানুষকে জানায়।
যেকোনো সফটওয়্যার কেনার আগে যা জিজ্ঞেস করবেন
হিসাবের সফটওয়্যার, পয়েন্ট-অব-সেল বা বুকিং টুল, যা-ই হোক, বিক্রেতাকে জিজ্ঞেস করুন:
- এর কি এপিআই আছে, আর ডকুমেন্টেশন কি উন্মুক্ত?
- কিছু বদলালে কি এটি খবর (ওয়েবহুক) পাঠাতে পারে?
- ছেড়ে গেলে কি সব তথ্য প্রচলিত ফরম্যাটে নামিয়ে নিতে পারব?
- কতবার এপিআই ব্যবহার করা যাবে, তার কোনো সীমা আছে কি?
- আমি যে টুলগুলো ব্যবহার করি সেগুলোর সাথে কি আগে থেকেই যুক্ত হয়, নাকি কাস্টম কাজ লাগবে?
এপিআই ছাড়া কোনো পণ্য একটি বিচ্ছিন্ন দ্বীপ। আজ সস্তা মনে হলেও পরে ব্যয়বহুল হয়ে উঠতে পারে, কারণ যতদিন ব্যবহার করবেন, ততদিন কাউকে এর তথ্য হাতে টাইপ করে যেতে হবে।
এখান থেকে কোথায় যাবেন
আপনার ব্যবসার টুলগুলোর তালিকা করুন, আর যে দুটোর মাঝে কেউ হাতে তথ্য কপি করেন, সেখানে একটি দাগ টানুন। ওই দাগগুলোই ইন্টিগ্রেশনের সুযোগ। প্রথম দিকের সাধারণ উদাহরণ হলো বিকাশ, নগদ আর ব্যাংকের পেমেন্ট বিক্রির সাথে মেলানো আর লাইসেন্সপ্রাপ্ত গেটওয়ে দিয়ে ওয়েবসাইটে অনলাইন পেমেন্ট নেওয়া। কিছু সংযোগ নো-কোড টুল দিয়েই হয়, কিছুতে কাস্টম কাজ লাগে, যা আমার এআই ও ওয়ার্কফ্লো অটোমেশন সার্ভিসের অংশ।