API دراصل وہ معاہدہ (contract) ہے جسے استعمال کرتے ہوئے کوئی کلائنٹ (client) کسی سسٹم سے کام کرنے کی درخواست کرتا ہے۔ انٹرویو کے تناظر میں، اس معاہدے کا مقصد صارف کے بنیادی کاموں—جیسے نوٹ بنانا، اسے پڑھنا، اس میں ترمیم کرنا، اسے حذف کرنا اور کسی دوسرے کے ساتھ شیئر کرنا—کو آسان اور متوقع (predictable) بنانا ہوتا ہے۔ اسے ایسی غیر محفوظ ابہام (ambiguity) سے بھی بچنا چاہیے جس میں، مثال کے طور پر، دو مختلف اینڈ پوائنٹس (endpoints) بظاہر تو نوٹ کو اپ ڈیٹ کر رہے ہوں لیکن ایک ہی طرح کے ان پٹ (input) پر مختلف رویہ اختیار کریں۔ آئیے اس معاہدے کو ایک انتہائی سادہ ‘نوٹس ایپ’ کی مثال کے ذریعے سمجھتے ہیں، جس میں موبائل یا ویب کلائنٹ ایک ایسی بیک اینڈ سروس سے رابطہ کرتا ہے جو نوٹس کو ڈیٹا بیس میں محفوظ کرتی ہے۔
اس بنیادی ڈیزائن میں، کلائنٹ API سروس کو HTTP درخواست بھیجتا ہے، API سروس اس کی تصدیق کرتی ہے اور معاہدے (contract) کے اصولوں کا اطلاق کرتی ہے، اور ڈیٹا بیس ‘نوٹ’ کے ریکارڈز کو محفوظ کرتا ہے تاکہ مستقبل میں پڑھے جانے پر وہی حالت (state) واپس ملے۔ یہاں اہم نکتہ ‘اختیار’ (agency) کا ہے۔ کلائنٹ انتخاب کرتا ہے کہ کیا کال کرنا ہے، API سروس فیصلہ کرتی ہے کہ کیا جائز ہے اور کیا تحریر (write) کیا جائے گا، اور ڈیٹا بیس نتیجے کو محفوظ رکھتا ہے تاکہ اگلی درخواست اسے دیکھ سکے۔ یہ وہ ڈھانچہ ہے جس پر ہم بعد میں زور دیں گے جب ایک سرور ناکافی ہو جائے گا۔
سب سے سادہ فعال API وسائل (resources) کے واضح نام رکھتی ہے اور ہر اینڈ پوائنٹ (endpoint) کو صارف کے ایک عمل اور محفوظ شدہ آبجیکٹ کی ایک ہیئت (shape) کے ساتھ منسلک کرتی ہے۔ ‘نوٹ’ ایک ایسا آبجیکٹ ہے جس میں id، ownerUserId، title، body اور ٹائم اسٹیمپس (timestamps) شامل ہوتے ہیں، اور ‘شیئرنگ’ (اشتراک) کا عمل ایک ایسا اصول شامل کرتا ہے جس کے تحت کوئی دوسرا صارف اجازت (permission) کی بنیاد پر اسے پڑھ یا ترمیم (edit) کر سکتا ہے۔ اس طرح، اینڈ پوائنٹس کا ایک چھوٹا سا مجموعہ اضافی افعال (verbs) یا پیچیدہ اور کثیر المعنی اصطلاحات ایجاد کیے بغیر بنیادی عمل (flow) کا احاطہ کر سکتا ہے۔ ہر اینڈ پوائنٹ کا ‘پڑھنے’ یا ‘لکھنے’ (read or write) کے راستے سے تعلق (mapping) ہی وہ چیز ہے جو دباؤ کے باوجود معاہدے کو قابلِ فہم رکھتی ہے۔ آئیے ان اینڈ پوائنٹس کا بنیادی سروس اور ڈیٹا بیس کے پڑھنے اور لکھنے کے عمل کے ساتھ ربط قائم کرتے ہیں۔