API کیا ہے؟ ایپ بلڈرز کے لیے سادہ رہنما
API (application programming interface) ایک متعین طریقہ ہے جس سے ایک سافٹ ویئر دوسرے سے ڈیٹا مانگتا ہے یا اسے کوئی کام کرنے کو کہتا ہے۔ آپ کی ایپ طے شدہ فارمیٹ میں درخواست بھیجتی ہے، جیسے “کل کی بکنگز دو”، “یہ کارڈ 20 یورو چارج کرو”، “یہ متن خلاصہ کرو”، اور دوسرا نظام ایک منظم جواب واپس کرتا ہے۔ APIs ہی ایپ کے حصوں کو آپس میں بات کرنے دیتے ہیں، اور یہی وہ طریقہ ہے جس سے آپ کی ایپ ادائیگیوں، ای میل، نقشوں اور AI جیسی بیرونی سروسز کو استعمال کرتی ہے۔
AI کے ساتھ بناتے وقت APIs کیوں اہم ہیں
تقریباً ہر مفید ایپ ایسے حصوں سے بنی ہے جو APIs کے ذریعے بات کرتے ہیں:
- آپ کی ایپ کے اندر، براؤزر کی اسکرینیں ڈیٹا لوڈ اور محفوظ کرنے کے لیے آپ کے اپنے بیک اینڈ کی API کو کال کرتی ہیں۔
- آپ کی ایپ کے باہر، آپ کا بیک اینڈ دوسری کمپنیوں کی APIs کو کال کرتا ہے: ادائیگیاں لینے کے لیے Stripe، رسیدیں بھیجنے کے لیے ای میل فراہم کنندہ، متن بنانے کے لیے AI ماڈل فراہم کنندہ۔
جب آپ AI بلڈر سے کہتے ہیں کہ “ادائیگیاں لو” یا “AI خلاصہ شامل کرو”، تو وہ دراصل ایسا کوڈ لکھتا ہے جو API کو کال کرتا ہے۔ بنیادی باتیں جاننے سے آپ سمجھ سکتے ہیں کہ AI کو آپ سے کیا چاہیے (عموماً اس سروس کا اکاؤنٹ اور ایک API key)، کہاں چیزیں خراب ہو سکتی ہیں، اور ان کا خرچ کیا ہوگا۔
روزمرہ کی ایک مثال
ایک ریستوران کا تصور کریں۔ آپ کچن میں جا کر کھانا نہیں پکاتے۔ آپ مینیو پڑھتے ہیں، ویٹر کو اس طرح بتاتے ہیں کہ کچن سمجھ جائے، اور ویٹر کھانا لے آتا ہے، یا بتاتا ہے کہ ڈش ختم ہو گئی ہے۔
- مینیو API کی دستاویزات ہے: کیا کچھ مانگا جا سکتا ہے اور کیسے۔
- ویٹر API ہے: درخواستوں کے اندر آنے اور جوابات کے باہر جانے کا ایک طے شدہ راستہ۔
- کچن دوسرا نظام ہے: آپ کو اس کے اندر کیا ہوتا ہے یہ جاننے کی ضرورت نہیں۔
- آپ کا آرڈر درخواست ہے؛ پلیٹ جواب ہے۔
کچن اپنے اوون اور عملہ بدل سکتا ہے، آپ پر اثر نہیں پڑتا، جب تک مینیو وہی رہے۔ API کی اصل قدر یہی ہے: یہ دو نظاموں کو اس طرح ساتھ کام کرنے دیتی ہے کہ دونوں میں سے کسی کو دوسرے کی اندرونی بناوٹ جاننے کی ضرورت نہ ہو۔
ایک ویب API درخواست کیسے کام کرتی ہے
زیادہ تر APIs جو آپ دیکھیں گے وہ HTTP پر کام کرنے والی ویب APIs ہیں، وہی پروٹوکول جو آپ کا براؤزر استعمال کرتا ہے۔ ہر درخواست کے چند حصے ہوتے ہیں:
| حصہ | کیا ہے | مثال |
|---|---|---|
| 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) ناموں اور قدروں کا ایک سادہ ٹیکسٹ فارمیٹ ہے جو گھنگھریالے بریکٹس میں لکھا جاتا ہے۔ یہ ویب APIs میں ڈیٹا کے تبادلے کا معیاری طریقہ ہے۔
REST: سب سے عام انداز
REST ویب APIs ڈیزائن کرنے کا ایک وسیع استعمال ہونے والا اصول ہے۔ ہر قسم کی چیز کا اپنا URL ہوتا ہے، اور معیاری طریقے بتاتے ہیں کہ آپ اس کے ساتھ کیا کر رہے ہیں۔ بکنگ ایپ کے لیے ایک REST API کچھ یوں لگ سکتی ہے:
| طریقہ | Endpoint | کیا کرتا ہے |
|---|---|---|
GET | /api/bookings | بکنگز کی فہرست |
GET | /api/bookings/5001 | ایک بکنگ لینا |
POST | /api/bookings | نئی بکنگ بنانا |
PATCH | /api/bookings/5001 | بکنگ کا کچھ حصہ بدلنا، جیسے وقت |
DELETE | /api/bookings/5001 | بکنگ منسوخ (حذف) کرنا |
PUT بھی موجود ہے اور روایتی طور پر پورا ریکارڈ بدل دیتا ہے، جبکہ PATCH صرف وہی فیلڈز بدلتا ہے جو آپ بھیجتے ہیں۔
سب سے زیادہ نظر آنے والے اسٹیٹس کوڈز:
| کوڈ | مطلب |
|---|---|
200 / 201 | کامیابی / بن گیا |
400 | خراب درخواست: آپ کے بھیجے گئے میں کچھ غلط یا غائب تھا |
401 | تصدیق نہیں ہوئی: کوئی درست لاگ اِن یا key نہیں |
403 | ممنوع: آپ کو پہچانا گیا ہے، مگر یہ کام کرنے کی اجازت نہیں |
404 | نہیں ملا |
429 | بہت زیادہ درخواستیں: آپ rate limit تک پہنچ گئے |
500 | سرور میں خرابی |
جب آپ کی ایپ خراب ہو، تو اسٹیٹس کوڈ اکثر سب سے تیز سراغ ہوتا ہے۔ ادائیگی فراہم کنندہ سے 401 عموماً API key کے غائب یا غلط ہونے کا مطلب ہے؛ 429 کا مطلب ہے کہ آپ بہت بار کال کر رہے ہیں۔
REST ہی واحد انداز نہیں، GraphQL اور RPC طرز کی APIs بھی موجود ہیں، مگر زیادہ تر سروسز اور AI سے بنے بیک اینڈز REST استعمال کرتے ہیں۔
ایک عملی مثال: بکنگ کی تصدیق
جب کوئی گاہک سیلون ایپ میں ہیئر کٹ بک کرتا ہے، تو ایک یا دو سیکنڈ میں کئی API کالز ہو سکتی ہیں:
- براؤزر میں بکنگ پیج سروس، وقت اور گاہک کی تفصیلات کے ساتھ آپ کے بیک اینڈ کو
POST /api/bookingsبھیجتا ہے۔ - آپ کا بیک اینڈ چیک کرتا ہے کہ وقت خالی ہے، بکنگ کو ڈیٹا بیس میں محفوظ کرتا ہے، اور
201 Createdواپس کرتا ہے۔ - آپ کا بیک اینڈ ای میل فراہم کنندہ کی API کو اپنی secret key کے ساتھ کال کرتا ہے: “یہ تصدیقی ای میل lena@example.com پر بھیجو۔”
- اگر ایڈوانس ادائیگی ہو، تو آپ کا بیک اینڈ ادائیگی فراہم کنندہ کی API سے checkout session بنواتا ہے اور گاہک کو وہاں بھیجتا ہے۔
- بعد میں ادائیگی فراہم کنندہ آپ کی ایپ کو کال کر کے بتاتا ہے کہ ادائیگی کامیاب ہو گئی۔ یہ الٹی کال ایک webhook ہے۔
پہلے دو مراحل frontend اور backend کے درمیان آپ کی اپنی API ہیں۔ مرحلے 3 سے 5 تک تیسرے فریق کی APIs ہیں۔
عام اصطلاحات کی وضاحت
| اصطلاح | مطلب |
|---|---|
| Endpoint | ایک مخصوص URL جس پر API جواب دیتی ہے۔ |
| API key | ایک خفیہ سٹرنگ جو آپ کی ایپ کو کسی سروس کے سامنے شناخت کراتی ہے۔ پاس ورڈ کی طرح سنبھالیں۔ |
| Authentication | یہ ثابت کرنا کہ کال کون کر رہا ہے، key، token یا لاگ اِن سے۔ دیکھیں authentication کیا ہے۔ |
| Rate limit | ایک مدت میں آپ کتنی درخواستیں کر سکتے ہیں، اس کی حد۔ |
| SDK | تیار کوڈ لائبریری جو کسی خاص API کو کال کرنا آسان بناتی ہے۔ |
| Documentation | مینیو: کون سے endpoints موجود ہیں، وہ کیا قبول کرتے اور کیا واپس کرتے ہیں۔ |
| Sandbox / test mode | کسی سروس کا وہ ورژن جو حقیقی پیسے یا ڈیٹا کے بغیر جانچ کے لیے ہو۔ |
| Webhook | جب کچھ ہو تو دوسری سروس سے آپ کی ایپ میں آنے والی کال۔ |
عام غلطیاں اور غلط فہمیاں
- فرنٹ اینڈ میں خفیہ keys ڈالنا۔ براؤزر میں چلنے والے کوڈ میں جو کچھ بھی ہے، اسے کوئی بھی جو سائٹ کھولے دیکھ سکتا ہے۔ خفیہ keys سرور پر، environment variables یا secrets میں رہنی چاہئیں۔
- چیٹ میں keys پیسٹ کرنا۔ چیٹ کی تاریخ محفوظ ہو سکتی ہے۔ اپنے بلڈر کی secrets کی سہولت استعمال کریں، اور جو key ظاہر ہو جائے اسے بدل دیں (rotate کریں)۔
- یہ فرض کرنا کہ API مفت ہے۔ بہت سی APIs ہر درخواست یا استعمال کی اکائی پر چارج کرتی ہیں؛ AI ماڈل APIs ٹوکنز کے حساب سے چارج کرتی ہیں۔ قیمت چیک کریں اور خرچ کی حد مقرر کریں۔ دیکھیں LLM APIs کیسے استعمال کریں۔
- ناکامی کو نہ سنبھالنا۔ بیرونی سروسز بند ہوتی ہیں، ٹائم آؤٹ ہوتی ہیں اور حدوں تک پہنچتی ہیں۔ معقول ایرر میسجز اور دوبارہ کوششوں کا تقاضا کریں۔
- براؤزر پر اندھا بھروسہ کرنا۔ آپ کی اپنی API کو خود اجازتیں چیک کرنی چاہئیں۔ بٹن چھپانے سے کوئی براہِ راست endpoint کال کرنے سے نہیں رکتا۔
- ٹیسٹ کے دوران لائیو keys استعمال کرنا۔ لانچ کے لیے تیار ہونے تک ٹیسٹ موڈ keys استعمال کریں۔
اپنے AI بلڈر سے کیا مانگیں
- “اس ایپ میں کون سی بیرونی APIs استعمال ہو رہی ہیں، اور ہر ایک کا خرچ کیا ہے؟”
- “ادائیگی کی API کو صرف سرور سے کال کریں۔ key ایک environment variable سے پڑھیں۔”
- “ہماری API کا ہر endpoint، وہ کیا کرتا ہے اور اسے کون کال کر سکتا ہے، فہرست دیں۔”
- “بکنگ کو اپڈیٹ یا حذف کرنے سے پہلے سرور پر چیک کریں کہ لاگ ان صارف اس کا مالک ہے۔”
- “اگر ای میل API ناکام ہو تو بھی بکنگ محفوظ کریں اور ایرر لاگ کریں۔”
- “ابھی کے لیے ادائیگی فراہم کنندہ کا ٹیسٹ موڈ استعمال کریں۔”
Mythex میں APIs
Mythex آپ کی اپنی API بنا سکتا ہے، یا تو ایک ویب ایپ کے حصے کے طور پر، یا Node، Python (FastAPI)، C# یا Java میں ایک الگ بیک اینڈ کے طور پر جو آپ کے فرنٹ اینڈ کے ساتھ چلے، اور بیرونی سروسز کو کال کرنے والا کوڈ بھی لکھ سکتا ہے۔ آپ ان کی keys چیٹ میں نہیں بلکہ پروجیکٹ secrets کے طور پر شامل کرتے ہیں، اور وہ پریویو میں اور شائع ہونے کے بعد دونوں جگہ آپ کی ایپ کو دستیاب ہوتی ہیں۔ docs میں کسی بھی API کو انٹیگریٹ کرنے اور REST API بیک اینڈ بنانے کی ریسیپیز ہیں۔
سوالات
سادہ الفاظ میں API کیا ہے؟
API (application programming interface) ایک متعین طریقہ ہے جس سے ایک سافٹ ویئر دوسرے سے ڈیٹا مانگتا ہے یا کوئی کام کرواتا ہے۔ آپ کی ایپ طے شدہ فارمیٹ میں درخواست بھیجتی ہے، اور دوسرا نظام جواب واپس کرتا ہے، جیسے موسم کا ڈیٹا، ادائیگی کا نتیجہ یا AI سے بنا ہوا جواب۔
REST API کیا ہے؟
REST API ویب APIs کا ایک عام انداز ہے جہاں ہر قسم کی چیز (بکنگز، گاہک) کا ایک URL ہوتا ہے، اور آپ معیاری HTTP طریقے استعمال کرتے ہیں: پڑھنے کے لیے GET، بنانے کے لیے POST، اپڈیٹ کے لیے PUT یا PATCH، اور حذف کرنے کے لیے DELETE۔ ڈیٹا عموماً JSON میں واپس آتا ہے۔
API key کیا ہے اور اسے کہاں رکھوں؟
API key ایک خفیہ سٹرنگ ہے جو آپ کی ایپ کو کسی سروس کے سامنے شناخت کراتی ہے اور اکثر پیسے خرچ کرنے یا ڈیٹا تک رسائی کی اجازت دیتی ہے۔ اسے سرور پر environment variables یا پروجیکٹ کے secrets میں رکھیں، کبھی بھی براؤزر میں چلنے والے کوڈ میں یا کسی عوامی repository میں نہیں۔
API اور webhook میں کیا فرق ہے؟
API میں آپ کی ایپ جب چاہے دوسری سروس سے کچھ مانگتی ہے۔ webhook میں دوسری سروس کسی واقعے پر آپ کی ایپ کو کال کرتی ہے، مثلاً ادائیگی فراہم کرنے والا آپ کو بتائے کہ ادائیگی کامیاب ہو گئی۔