API কী? অ্যাপ বিল্ডারদের জন্য সহজ গাইড
API (application programming interface) হলো এক সফটওয়্যারের অন্যটির কাছে ডেটা চাওয়া বা কিছু করতে বলার একটি সংজ্ঞায়িত উপায়। আপনার অ্যাপ একটি সম্মত ফরম্যাটে অনুরোধ পাঠায় — “আগামীকালের বুকিংগুলো দাও”, “এই কার্ডে ২০ ইউরো চার্জ করো”, “এই লেখাটির সারসংক্ষেপ করো” — আর অন্য সিস্টেম একটি কাঠামোবদ্ধ উত্তর ফেরত দেয়। একটি অ্যাপের অংশগুলো API দিয়েই একে অপরের সঙ্গে কথা বলে, এবং আপনার অ্যাপ পেমেন্ট, ইমেইল, ম্যাপ ও AI-এর মতো বাইরের সেবা এভাবেই ব্যবহার করে।
AI দিয়ে তৈরির সময় কেন API গুরুত্বপূর্ণ
প্রায় প্রতিটি কার্যকর অ্যাপ এমন অংশ দিয়ে তৈরি, যারা API-র মাধ্যমে যোগাযোগ করে:
- আপনার অ্যাপের ভেতরে, ব্রাউজারের স্ক্রিনগুলো ডেটা লোড ও সংরক্ষণের জন্য আপনার নিজের ব্যাকএন্ডের API কল করে।
- আপনার অ্যাপের বাইরে, আপনার ব্যাকএন্ড অন্য কোম্পানির API কল করে: পেমেন্ট নিতে Stripe, রসিদ পাঠাতে একটি ইমেইল প্রোভাইডার, লেখা তৈরিতে একটি AI মডেল প্রোভাইডার।
AI builder-কে যখন আপনি “পেমেন্ট নাও” বা “একটি AI সারসংক্ষেপ যোগ করো” বলেন, তখন সে আসলে একটি API কল করার কোড লেখে। মূল বিষয়গুলো জানলে বোঝা যায় AI-র আপনার কাছ থেকে কী লাগবে (সাধারণত ওই সেবায় একটি অ্যাকাউন্ট ও একটি API কী), কোথায় ভুল হতে পারে, এবং খরচ কত হবে।
একটি দৈনন্দিন উদাহরণ
একটি রেস্তোরাঁর কথা ভাবুন। আপনি রান্নাঘরে ঢুকে নিজে রান্না করেন না। আপনি মেনু পড়েন, ওয়েটারকে রান্নাঘর যেভাবে বোঝে সেভাবে কী চান জানান, এবং ওয়েটার খাবার নিয়ে আসে — বা বলে খাবারটি শেষ।
- মেনু হলো API ডকুমেন্টেশন: কী চাওয়া যায় এবং কীভাবে।
- ওয়েটার হলো API: অনুরোধ ঢোকার ও উত্তর বেরোনোর একটি সম্মত উপায়।
- রান্নাঘর হলো অন্য সিস্টেম: ভেতরে কী হয় তা আপনার জানার দরকার নেই।
- আপনার অর্ডার হলো অনুরোধ; প্লেট হলো উত্তর।
রান্নাঘর তার চুলা ও কর্মী বদলালেও আপনার কোনো ক্ষতি হয় না, যতক্ষণ মেনু একই থাকে। এটাই API-র আসল মূল্য: দুটি সিস্টেম একে অপরকে না জেনেও একসঙ্গে কাজ করতে পারে।
ওয়েব API অনুরোধ কীভাবে কাজ করে
আপনি যেসব API দেখবেন তার বেশিরভাগই HTTP-র ওপর কাজ করা ওয়েব API, যে প্রোটোকল আপনার ব্রাউজারও ব্যবহার করে। প্রতিটি অনুরোধে কয়েকটি অংশ থাকে:
| অংশ | এটি কী | উদাহরণ |
|---|---|---|
| Method | কী ধরনের কাজ | GET (পড়া), POST (তৈরি) |
| URL / endpoint | যে জিনিসের ওপর কাজ করছেন তার ঠিকানা | https://api.example.com/bookings |
| Headers | অতিরিক্ত তথ্য, আপনি কে তাও সহ | Authorization: Bearer <your key> |
| Body | যে ডেটা পাঠাচ্ছেন, তৈরি বা আপডেটের জন্য | {"name": "Lena", "time": "14:00"} |
আর প্রতিটি উত্তরে থাকে:
| অংশ | এটি কী | উদাহরণ |
|---|---|---|
| Status code | কী হলো তা জানানো একটি সংখ্যা | 200 OK, 201 Created, 404 Not Found |
| Body | ফেরত আসা ডেটা, সাধারণত JSON | {"id": 5001, "status": "confirmed"} |
JSON (JavaScript Object Notation) হলো নাম ও মানের একটি সহজ টেক্সট ফরম্যাট, যা কোঁকড়ানো বন্ধনীতে লেখা হয়। ওয়েব API-তে ডেটা আদান-প্রদানের এটি আদর্শ উপায়।
REST: সবচেয়ে সাধারণ ধরন
REST হলো ওয়েব API ডিজাইনের একটি বহুল ব্যবহৃত রীতি। প্রতিটি ধরনের জিনিসের নিজস্ব URL থাকে, এবং স্ট্যান্ডার্ড পদ্ধতি বলে আপনি তার সঙ্গে কী করছেন। একটি বুকিং অ্যাপের জন্য REST API এমন দেখতে হতে পারে:
| পদ্ধতি | এন্ডপয়েন্ট | কী করে |
|---|---|---|
GET | /api/bookings | বুকিংয়ের তালিকা |
GET | /api/bookings/5001 | একটি বুকিং |
POST | /api/bookings | নতুন বুকিং তৈরি |
PATCH | /api/bookings/5001 | বুকিংয়ের অংশ বদলানো, যেমন সময় |
DELETE | /api/bookings/5001 | বাতিল (মুছে ফেলা) |
PUT-ও আছে এবং এটি সাধারণত পুরো রেকর্ড প্রতিস্থাপন করে, আর PATCH শুধু আপনার পাঠানো ফিল্ড বদলায়।
সবচেয়ে বেশি যেসব স্ট্যাটাস কোড দেখবেন:
| কোড | অর্থ |
|---|---|
200 / 201 | সফল / তৈরি হয়েছে |
400 | খারাপ অনুরোধ — আপনার পাঠানো কিছু ভুল বা অনুপস্থিত |
401 | প্রমাণীকৃত নয় — বৈধ লগইন বা কী নেই |
403 | নিষিদ্ধ — আপনাকে চেনা যায়, কিন্তু এটি করার অনুমতি নেই |
404 | পাওয়া যায়নি |
429 | অতিরিক্ত অনুরোধ — রেট লিমিটে পৌঁছেছেন |
500 | সার্ভারে ত্রুটি হয়েছে |
আপনার অ্যাপ ভাঙলে স্ট্যাটাস কোডই প্রায়ই দ্রুততম সূত্র। একটি পেমেন্ট প্রোভাইডার থেকে 401 মানে সাধারণত API কী নেই বা ভুল; 429 মানে আপনি অতিরিক্ত ঘন ঘন কল করছেন।
REST একমাত্র ধরন নয় — GraphQL ও RPC-স্টাইলের API-ও আছে — তবে বেশিরভাগ সেবা ও AI-বানানো ব্যাকএন্ড REST ব্যবহার করে।
একটি বাস্তব উদাহরণ: একটি বুকিং নিশ্চিতকরণ
একটি সেলুন অ্যাপে কোনো গ্রাহক চুল কাটার বুকিং দিলে এক-দুই সেকেন্ডে কয়েকটি API কল হতে পারে:
- ব্রাউজারের বুকিং পেজ সার্ভিস, সময় ও গ্রাহকের তথ্যসহ আপনার ব্যাকএন্ডে
POST /api/bookingsপাঠায়। - আপনার ব্যাকএন্ড যাচাই করে স্লট খালি আছে, বুকিং ডেটাবেসে সংরক্ষণ করে, এবং
201 Createdফেরত দেয়। - আপনার ব্যাকএন্ড একটি ইমেইল প্রোভাইডারের API-কে তার গোপন কী দিয়ে কল করে: “এই নিশ্চিতকরণ lena@example.com-এ পাঠাও।”
- যদি অগ্রিম জমা থাকে, আপনার ব্যাকএন্ড পেমেন্ট প্রোভাইডারের API-কে একটি checkout সেশন তৈরি করতে বলে এবং গ্রাহককে সেখানে পাঠায়।
- পরে, পেমেন্ট প্রোভাইডার জানাতে আপনার অ্যাপকে কল করে যে পেমেন্ট সফল হয়েছে। এই উল্টো কলই একটি ওয়েবহুক।
প্রথম দুটি ধাপ ফ্রন্টএন্ড ও ব্যাকএন্ডের মধ্যে আপনার নিজের API। ৩–৫ ধাপ তৃতীয় পক্ষের API।
সাধারণ শব্দের ব্যাখ্যা
| শব্দ | অর্থ |
|---|---|
| Endpoint | একটি API যে নির্দিষ্ট URL-এ সাড়া দেয়। |
| API key | আপনার অ্যাপকে একটি সেবার কাছে শনাক্ত করা একটি গোপন স্ট্রিং। পাসওয়ার্ডের মতো গুরুত্ব দিন। |
| Authentication | কে কল করছে তা প্রমাণ করা — কী, টোকেন বা লগইন দিয়ে। দেখুন authentication কী। |
| Rate limit | একটি সময়ে আপনি কতগুলো অনুরোধ করতে পারবেন তার সীমা। |
| SDK | একটি নির্দিষ্ট API কল সহজ করতে তৈরি করা লাইব্রেরি। |
| Documentation | “মেনু”: কোন এন্ডপয়েন্ট আছে, কী নেয় ও কী ফেরত দেয়। |
| Sandbox / test mode | আসল টাকা বা আসল ডেটা ছাড়া পরীক্ষার জন্য একটি সেবার সংস্করণ। |
| Webhook | কিছু ঘটলে অন্য সেবা থেকে আপনার অ্যাপে আসা কল। |
সাধারণ ভুল ও ভুল ধারণা
- গোপন কী ফ্রন্টএন্ডে রাখা। ব্রাউজারে চলা কোডে যা কিছু থাকে, যে কেউ ভিজিট করলে দেখতে পারে। গোপন কী অবশ্যই সার্ভারে থাকবে, এনভায়রনমেন্ট ভেরিয়েবল বা সিক্রেটে।
- চ্যাটে কী পেস্ট করা। চ্যাটের ইতিহাস সংরক্ষিত হতে পারে। বদলে আপনার বিল্ডারের সিক্রেট ফিচার ব্যবহার করুন, এবং যেকোনো উন্মুক্ত হয়ে যাওয়া কী বদলে দিন।
- API বিনামূল্যে ধরে নেওয়া। অনেক API প্রতি অনুরোধ বা প্রতি ব্যবহারের একক হিসাবে খরচ নেয় — AI মডেল API টোকেন অনুযায়ী খরচ নেয়। দাম দেখুন এবং খরচের সীমা সেট করুন। দেখুন LLM API কীভাবে ব্যবহার করবেন।
- ব্যর্থতা সামলানো না করা। বাইরের সেবা বন্ধ হয়, টাইমআউট হয় এবং সীমায় পৌঁছায়। যুক্তিসঙ্গত ত্রুটির বার্তা ও পুনরায় চেষ্টার ব্যবস্থা চান।
- ব্রাউজারকে বিশ্বাস করা। আপনার নিজের API-কে নিজে অনুমতি যাচাই করতে হবে। বোতাম লুকালেই কেউ সরাসরি এন্ডপয়েন্টে কল করা থামে না।
- টেস্টিংয়ে লাইভ কী ব্যবহার। লঞ্চের জন্য প্রস্তুত না হওয়া পর্যন্ত টেস্ট মোডের কী ব্যবহার করুন।
আপনার AI builder-কে কী চাইবেন
- “এই অ্যাপ কোন বাইরের API ব্যবহার করে, এবং প্রতিটির খরচ কত?”
- “পেমেন্ট API শুধু সার্ভার থেকে কল করো। কী এনভায়রনমেন্ট ভেরিয়েবল থেকে পড়ো।”
- “আমাদের API-এর প্রতিটি এন্ডপয়েন্টের তালিকা দাও, কী করে এবং কে কল করতে পারে।”
- “বুকিং আপডেট বা মোছার আগে সার্ভারে যাচাই করো যে লগইন করা ব্যবহারকারীই মালিক।”
- “ইমেইল API ব্যর্থ হলে বুকিং তবুও সংরক্ষণ করো এবং ত্রুটি লগ করো।”
- “আপাতত প্রোভাইডারের টেস্ট মোড ব্যবহার করো।”
Mythex-এ API
Mythex আপনার নিজের API বানাতে পারে — একটি ওয়েব অ্যাপের অংশ হিসেবে, বা Node, Python (FastAPI), C# বা Java-তে আলাদা ব্যাকএন্ড হিসেবে যা আপনার ফ্রন্টএন্ডের পাশে চলে — এবং বাইরের সেবাগুলো কল করার কোড লিখতে পারে। আপনি চ্যাটে নয়, প্রকল্পের সিক্রেট হিসেবে তাদের কী যোগ করেন, এবং প্রিভিউয়ে ও প্রকাশের পর তা আপনার অ্যাপের জন্য উপলব্ধ থাকে। ডকুমেন্টেশনে যেকোনো API ইন্টিগ্রেট করা এবং REST API ব্যাকএন্ড বানানো রেসিপি আছে।
প্রশ্নোত্তর
সহজ কথায় API কী?
API (application programming interface) হলো এক সফটওয়্যারের অন্যটির কাছে ডেটা চাওয়ার বা কিছু করতে বলার একটি সংজ্ঞায়িত উপায়। আপনার অ্যাপ একটি সম্মত ফরম্যাটে অনুরোধ পাঠায়, আর অন্য সিস্টেম উত্তর ফেরত দেয় — যেমন আবহাওয়ার ডেটা, পেমেন্টের ফল বা একটি AI-তৈরি উত্তর।
REST API কী?
REST API হলো ওয়েব API-র একটি জনপ্রিয় ধরন, যেখানে প্রতিটি ধরনের জিনিসের (বুকিং, গ্রাহক) একটি URL থাকে, এবং আপনি স্ট্যান্ডার্ড HTTP পদ্ধতি ব্যবহার করেন — পড়তে GET, তৈরি করতে POST, আপডেট করতে PUT বা PATCH, মুছতে DELETE। ডেটা সাধারণত JSON হিসেবে ফিরে আসে।
API কী কী এবং কোথায় রাখব?
API কী হলো একটি গোপন স্ট্রিং, যা আপনার অ্যাপকে একটি সেবার কাছে শনাক্ত করে এবং প্রায়ই খরচ বা ডেটা অ্যাক্সেসের অনুমতি দেয়। এটি সার্ভারে এনভায়রনমেন্ট ভেরিয়েবল বা প্রকল্পের সিক্রেটে রাখুন; ব্রাউজারে চলা কোডে বা কোনো পাবলিক রিপোজিটরিতে কখনও নয়।
API ও ওয়েবহুকের পার্থক্য কী?
API-তে আপনার অ্যাপ যখন চায় তখন অন্য সেবাকে কিছু জিজ্ঞেস করে। ওয়েবহুকে কিছু ঘটলে অন্য সেবা আপনার অ্যাপকে কল করে — যেমন একটি পেমেন্ট প্রোভাইডার জানায় যে পেমেন্ট সফল হয়েছে।