API কী এবং কীভাবে কাজ করে? সহজ উদাহরণে
রেস্টুরেন্টের উদাহরণে API, তারপর আসল অংশগুলো: endpoint, method, JSON, status code ও API key, সঙ্গে ছোট একটি Python উদাহরণ।
ছোট উত্তর: API (Application Programming Interface) হলো কিছু নিয়মের সমষ্টি, যার মাধ্যমে একটি প্রোগ্রাম আরেকটি প্রোগ্রামের কাছে ডেটা বা কোনো কাজ চাইতে পারে এবং সাজানো উত্তর ফেরত পায়। আপনার প্রোগ্রাম একটি ঠিকানায় (endpoint) request পাঠায়, অন্য পাশের server কাজটি করে, তারপর সাধারণত JSON-এ একটি response পাঠায়, সঙ্গে একটি status code থাকে যা জানায় কাজ হলো কি না।
রেস্টুরেন্টের উদাহরণ
আপনি মেনু হাতে টেবিলে বসে আছেন। রান্নাঘর অনেক কিছু রাঁধতে পারে, কিন্তু আপনি নিজে ভেতরে ঢুকে রাঁধেন না। আপনি ওয়েটারকে বলেন কী চান, ওয়েটার অর্ডার রান্নাঘরে নিয়ে যায়, আর খাবার ফিরিয়ে আনে।
আপনি হলেন client (আপনার app বা script)।
মেনু হলো API documentation: কী চাওয়া যায়।
ওয়েটার হলো API: আপনার request নেয় এবং ফলাফল ফেরত আনে।
রান্নাঘর হলো server ও তার database, যা আপনার চোখের আড়ালে।
রান্নাঘর কীভাবে চলে তা জানার দরকার নেই। শুধু জানতে হবে অর্ডার কীভাবে দিতে হয়।
API call-এর আসল অংশগুলো
অংশ | মানে | রেস্টুরেন্টের ভাষায় |
|---|---|---|
Endpoint | যে URL-এ call করেন, যেমন | কোন কাউন্টার বা মেনুর কোন অংশ |
Method | কী করতে চান: GET (পড়া), POST (তৈরি), PUT/PATCH (হালনাগাদ), DELETE (মুছে ফেলা) | “দেখান”, “অর্ডার দিন”, “বদলে দিন”, “বাতিল করুন” |
Request | Method + endpoint + ঐচ্ছিক header ও body | আপনার মুখের অর্ডার |
Response | ফিরে আসা ডেটা ও status code | খাবার, অথবা “দুঃখিত, শেষ হয়ে গেছে” |
JSON
বেশিরভাগ web API উত্তর দেয় JSON-এ। এটি key ও value-র একটি সাধারণ টেক্সট ফরম্যাট, যা সব প্রোগ্রামিং ভাষা পড়তে পারে: {"name": "Asha", "age": 25}।
Status code
200: OK, কাজ হয়েছে।
201: নতুন কিছু তৈরি হয়েছে।
400: আপনার request ভুল ছিল।
401 / 403: login করা নেই, অথবা অনুমতি নেই।
404: জিনিসটি পাওয়া যায়নি।
429: অনেক বেশি request, ধীর হন।
500: server-এ সমস্যা হয়েছে।
API key
অনেক API API key চায়। এটি একটি গোপন স্ট্রিং, যা আপনাকে চিনিয়ে দেয়, অনেকটা সদস্য কার্ডের মতো। provider এটি দিয়ে বোঝে কে call করছে এবং সীমা প্রয়োগ করে। এটি গোপন রাখুন: public কোডে কখনো বসাবেন না, বরং environment variable-এ রাখুন।
ছোট একটি Python উদাহরণ
GitHub-এর একটি public API আছে, যেখানে সহজ তথ্য পড়তে key লাগে না। এই script octocat নামের public account-এর তথ্য চায়:
import requests
response = requests.get("https://api.github.com/users/octocat", timeout=10)
print(response.status_code) # 200 means success
if response.ok:
data = response.json() # JSON turned into a Python dict
print(data["login"], data["public_repos"])
else:
print("Request failed:", response.status_code)
আগে pip install requests দিয়ে library install করুন। username এমন কিছু দিন যা নেই, তখন 404 দেখতে পাবেন। Public API-তে rate limit থাকে, তাই দ্রুত লুপে বারবার call করবেন না। আরও গভীরে যেতে পড়ুন Python-এর requests দিয়ে API call এবং HTTP method, status code, header ও JSON চ্যাপ্টার।
AI model API-ও একটি API
কোনো app যখন AI model ব্যবহার করে, সাধারণত আপনার prompt সহ একটি request model provider-এর API-তে পাঠায় এবং তৈরি করা লেখা JSON response হিসেবে পায়। এই request-এ সাধারণত API key লাগে। আপনি যে app-এ chat করেন, সেটি তার উপরের একটি সহজ স্তর মাত্র। তিনটি কীভাবে মেলে, তা জানতে পড়ুন AI Model, AI API ও AI Application-এর পার্থক্য।
সাধারণ ভুল
API key কোডের ভেতরেই লিখে ফেলা এবং সেই কোড public repository-তে push করা।
Status code না দেখা এবং ধরে নেওয়া যে প্রতিটি response-এ সঠিক ডেটা আছে।
Documentation না পড়া, যেখানে endpoint, প্রয়োজনীয় parameter ও সীমা লেখা থাকে।
Timeout না দেওয়া, ফলে server ধীর হলে আপনার প্রোগ্রাম আটকে থাকে।
মূল কথা
API হলো প্রোগ্রামগুলোর মাঝের ওয়েটার: আপনি method সহ endpoint-এ request পাঠান, আর JSON ডেটা ও status code সহ response পান। Documentation পড়া, status code দেখা এবং API key সুরক্ষিত রাখা শিখলে প্রায় যেকোনো service-এর সাথে, এমনকি AI model-এর সাথেও, যুক্ত হতে পারবেন।
শুরু করতে চান? Python থেকে API call করা, documentation পড়া এবং নিজের ছোট API বানানো শিখুন। শুরু করুন ফ্রি কোর্স AI-এর জন্য Git, API ও ব্যাকএন্ড: বিগিনার দিয়ে।
মন্তব্য
আলোচনায় যোগ দিতে সাইন ইন করুন।