کیا آپ اپنی ایپ کو فیس بک سے لنک کرنا چاہتے ہیں تاکہ یہ خود بخود پوسٹس بنا سکے، یا انسٹاگرام پر تاکہ آپ کچھ ہیش ٹیگز کے ساتھ فوٹو دوبارہ پوسٹ کر سکیں؟
آپ اپنی ویب سائٹ پر یوٹیوب ویڈیوز بھی شامل کرنا چاہ سکتے ہیں۔ ایپلیکیشن پروگرامنگ انٹرفیس آپ کو ان تمام کاموں اور مزید (APIs) کو انجام دینے کی اجازت دیتے ہیں۔
انسٹاگرام API، Facebook API، اور YouTube API جیسے APIs کی بدولت مختلف ایپلی کیشنز ایک دوسرے سے محفوظ اور معیاری انداز میں "بات" کر سکتی ہیں۔
دوسرے لفظوں میں، ایک پروگرام سافٹ ویئر کے کسی دوسرے ٹکڑے سے فیچرز یا ڈیٹا لے سکتا ہے اور انہیں اپنی خصوصیات یا صارف کے تجربے کو بہتر بنانے کے لیے استعمال کر سکتا ہے۔ لیکن ایپس یہ درخواستیں کیسے کر سکتی ہیں، ان پر کارروائی کر سکتی ہیں اور اس انداز میں جواب دے سکتی ہیں کہ دوسرے سمجھ سکیں؟
یہ اس بات پر منحصر ہے کہ API کو کیسے بنایا گیا تھا۔ API (ایپلی کیشن پروگرامنگ انٹرفیس) کے ڈیزائن پر بحث کرتے وقت، SOAP بمقابلہ REST کا موازنہ کرنا معمول کی بات ہے، API کے دو نمایاں نمونے ہیں۔
جیسے ہی SOAP APIs (Simple Object Access Protocol) Oracle، Sun، اور PayPal جیسی فرموں کے لیے سونے کا معیار بن گیا، گوگل، Amazon، اور eBay کی جانب سے REST APIs کے لیے ایک سال یا اس کے بعد مساوی اور مخالف جواب ملا۔
اس پوسٹ میں، ہم SOAP APIs کا REST APIs کے ساتھ موازنہ کریں گے تاکہ آپ فیصلہ کر سکیں کہ آپ کے مقاصد کے لیے کون سا بہترین ہے۔
ہم API کی وضاحت کرکے شروع کریں گے۔
API کیا ہے؟
ایپلیکیشن پروگرامنگ انٹرفیس کو API کہا جاتا ہے۔ APIs بنیادی طور پر طریقوں اور افعال کا مجموعہ ہیں جو ایپس کی ترقی کو قابل بناتے ہیں۔ وہ مختلف پروگراموں، خدمات، یا آپریٹنگ سسٹم کی معلومات اور افعال تک رسائی حاصل کرتے ہیں۔
وہ مختلف سافٹ ویئر سسٹمز کے درمیان ایک طرح کے درمیانی کے طور پر کام کرتے ہیں۔ وہ دو غیر منسلک پروگراموں کے درمیان "بات چیت" کو فعال کرتے ہیں۔
آئیے ایک اسٹاک بروکر کی مثال لیں جو تجارت اور مالیاتی منڈیوں میں سرگرم عمل ہے۔ خودکار کا مجموعہ تجارتی الگورتھم ایک API کے ذریعے تاجر کے پسندیدہ تجارتی بروکر پلیٹ فارم سے منسلک کیا جا سکتا ہے۔ یہ آپ کو، تاجر کو، الیکٹرانک ٹرانزیکشنز کو انجام دینے یا ریئل ٹائم کوٹیشنز اور قیمتوں کا ڈیٹا دیکھنے کے قابل بناتا ہے۔
REST کیا ہے؟
حقیقی "ویب خدمات" API میں REST (نمائندہ ریاست کی منتقلی) شامل ہیں۔ REST APIs URIs (یکساں وسائل کے شناخت کنندگان، جن میں سے ایک URL ایک خاص قسم کا ہے)، HTTP پروٹوکول، اور ناقابل یقین حد تک براؤزر سے مطابقت رکھنے والا JSON ڈیٹا فارمیٹ پر بنایا گیا ہے۔
SOAP پروٹوکول، جیسا کہ ہم پہلے ہی بیان کر چکے ہیں، ممکنہ طور پر بھی استعمال کیا جا سکتا ہے۔ REST APIs بنانا اور بڑھنا آسان ہو سکتا ہے، لیکن وہ بہت زیادہ اور مشکل بھی ہو سکتے ہیں- یہ سب اس بات پر منحصر ہے کہ وہ کیسے بنائے گئے، پھیلائے گئے، اور وہ کیا کرنا چاہتے ہیں۔
وسائل کی رکاوٹیں، حفاظتی تقاضوں میں کمی، براؤزر کلائنٹ کی مطابقت، دریافت کی اہلیت، ڈیٹا کی صحت، اور اسکیل ایبلٹی وہ کچھ وجوہات ہیں جن کی وجہ سے آپ ایک API تیار کرنا چاہیں گے تاکہ وہ آرام دہ ہو — وہ چیزیں جو دراصل ویب سروسز پر لاگو ہوتی ہیں۔
REST ایک زیادہ ہلکا پھلکا آپشن پیش کرتا ہے۔ SOAP استعمال کرنا مشکل اور بہت سے ڈویلپرز کے لیے بوجھل تھا۔ مثال کے طور پر، JavaScript کے ساتھ SOAP استعمال کرنے کے لیے سادہ آپریشنز کو مکمل کرنے کے لیے بہت سارے کوڈ لکھنے کی ضرورت ہوتی ہے کیونکہ ضروری XML ڈھانچہ ہر بار تخلیق کیا جانا چاہیے۔
REST (عام طور پر) XML درخواست کی جگہ ایک سیدھا سادا URL استعمال کرتا ہے۔ اگرچہ ایسے نایاب حالات ہوتے ہیں جب آپ کو مزید تفصیلات پیش کرنی پڑتی ہیں، لیکن RESTful ویب سروسز کی اکثریت صرف URL تکنیک کا استعمال کرتی ہے۔
چار HTTP 1.1 فعل GET، POST، PUT، اور DELETE کو REST کے ذریعے آپریشن انجام دینے کے لیے استعمال کیا جا سکتا ہے۔ SOAP کے برعکس، REST کو XML میں ہونے کے لیے جواب کی ضرورت نہیں ہے۔
REST پر مبنی ویب سروسز جو کمانڈ سیپریٹڈ ویلیو (CSV)، JavaScript Object Notation (JSON) اور Really Simple Syndication (RSS) فارمیٹس میں ڈیٹا آؤٹ کرتی ہیں (RSS) دستیاب ہیں۔
مقصد یہ ہے کہ آپ اپنی درخواست کے لیے جس زبان کا استعمال کر رہے ہیں اس کے اندر تجزیہ کرنے میں آسان فارمیٹ میں مطلوبہ نتائج حاصل کر سکتے ہیں۔
خصوصیات
- REST HTTP پروٹوکول کی وجہ سے، سب سے بڑھ کر سادگی پر زور دیتا ہے۔
- ویب REST کے لیے بہترین موزوں ہے۔ یہ براؤزرز کے ساتھ مطابقت رکھتا ہے کیونکہ JSON ڈیٹا فارمیٹ کے طور پر استعمال ہوتا ہے۔
- REST اپنی شاندار اسکیل ایبلٹی اور رفتار کے لیے مشہور ہے۔
- کلائنٹ-سرور کنکشنز اور آرکیٹیکچرز کو REST APIs کے ذریعے مزید قابل رسائی بنایا گیا ہے۔ اگر یہ آرام دہ ہے، تو اسے اس کلائنٹ-سرور ماڈل کا استعمال کرتے ہوئے بنایا گیا ہے، جس میں دونوں فریقوں کے درمیان راؤنڈ ٹرپس ڈیٹا پے لوڈز کو منتقل کرتے ہیں۔
- REST APIs ایک تنہا معیاری انٹرفیس استعمال کرتے ہیں۔ اس بات کو یقینی بناتے ہوئے کہ تمام ایپس یکساں طور پر اور ایک ہی گیٹ وے کے ذریعے مربوط ہوں، اس بات کو ہموار کرتی ہیں کہ ایپلیکیشنز API کے ساتھ کیسے بات چیت کرتی ہیں۔
SOAP کیا ہے؟
اس کا اپنا پروٹوکول، جسے SOAP (سادہ آبجیکٹ ایکسیس پروٹوکول) کہا جاتا ہے، REST سے تھوڑا زیادہ پیچیدہ ہے کیونکہ یہ مزید معیارات کی وضاحت کرتا ہے، بشمول سیکیورٹی اور پیغام کی ترسیل سے متعلق۔
یہ موروثی اصول تھوڑا سا اضافی اوور ہیڈ کے ساتھ آتے ہیں۔ تاہم، یہ ان کاروباروں کے لیے فیصلہ کن عنصر ہو سکتے ہیں جن کو زیادہ وسیع سیکیورٹی، لین دین، اور ACID (جوہری، مستقل مزاجی، تنہائی، پائیداری) کی تعمیل کی صلاحیتوں کی ضرورت ہے۔
اس موازنہ کی خاطر، یہ نوٹ کرنا ضروری ہے کہ SOAP کے بہت سے فوائد اکثر ویب سروسز ایپلی کیشنز پر لاگو نہیں ہوتے ہیں، جو انہیں انٹرپرائز قسم کے منظرناموں کے لیے زیادہ موزوں بناتے ہیں۔
سیکورٹی کے اعلی درجے (جیسے کہ جب a موبائل اپلی کیشن بینک کے ساتھ تعامل کرتا ہے)، میسجنگ ایپس جن کے لیے قابل بھروسہ مواصلت کی ضرورت ہوتی ہے، لیگیسی سسٹمز کے ساتھ تعامل، یا ACID کی تعمیل کچھ وجوہات ہیں جن کی وجہ سے آپ SOAP API کا استعمال کرتے ہوئے ایک ایپلیکیشن ڈیزائن کرنا چاہیں گے۔
SOAP کی طرف سے پیش کردہ پیغام رسانی کی صلاحیتیں مکمل طور پر XML پر مبنی ہیں۔ ڈسٹری بیوٹڈ کمپوننٹ آبجیکٹ ماڈل (DCOM) اور کامن آبجیکٹ ریکوئسٹ بروکر آرکیٹیکچر جیسی پرانی انٹرنیٹ سے مطابقت نہ رکھنے والی ٹیکنالوجیز کو SOAP سے تبدیل کر دیا گیا جب اسے پہلی بار Microsoft (CORBA) نے بنایا تھا۔
بائنری مواصلات پر انحصار ان نظاموں کے ناکام ہونے کا سبب بنتا ہے۔ انٹرنیٹ پر، SOAP کے ذریعے استعمال ہونے والی XML میسجنگ بہتر طور پر کام کرتی ہے۔
خصوصیات
- SOAP کی سیکورٹی نمایاں طور پر سخت ہے۔ WS-Security ایک بلٹ ان اسٹینڈرڈ ہے جو SSL سپورٹ کے علاوہ ضرورت پڑنے پر SOAP اضافی انٹرپرائز لیول سیکیورٹی صلاحیتیں پیش کرتا ہے۔
- قابل اعتماد پیغام رسانی کی کارکردگی کے لیے کامیاب/دوبارہ استدلال کی کوشش کریں۔ چونکہ REST میں پیغام کے معیاری طریقہ کار کا فقدان ہے، یہ تب ہی دوبارہ کوشش کر سکتا ہے جب مواصلت ناکام ہو جائے۔ یہاں تک کہ جب SOAP انٹرمیڈیٹس استعمال کرتے ہیں، SOAP اپنی بلٹ ان کامیاب/دوبارہ کوشش کی منطق کی وجہ سے آخر سے آخر تک انحصار کی پیشکش کرتا ہے۔
- SOAP پہلے سے ہی ACID معیارات کی تعمیل کرتا ہے۔ یہ بتاتے ہوئے کہ لین دین ڈیٹا بیس کے ساتھ کیسے تعامل کر سکتا ہے، ACID کی تعمیل بے ضابطگیوں کو کم کرتی ہے اور ڈیٹا بیس کی مستقل مزاجی کی حفاظت کرتی ہے۔ چونکہ ACID ڈیٹا کی مستقل مزاجی کے دوسرے ماڈلز کے مقابلے میں زیادہ محتاط ہے، اس لیے حساس لین دین کا انتظام کرتے وقت اسے کثرت سے استعمال کیا جاتا ہے، چاہے مالی ہو یا دوسری صورت میں۔
- پروگرامرز کے لیے یہ سمجھنا آسان ہے کیونکہ SOAP مکمل طور پر XML پر مبنی مواصلات ہے۔
- XML پیغام رسانی پروٹوکول HTTP پروٹوکول میں ایک اضافہ ہے۔
- ایک کمپیوٹر سے دوسرے کمپیوٹر تک مواصلات کو SOAP پیغام رسانی کے ذریعے پھیلایا جا سکتا ہے۔
- کلائنٹ سرور فن تعمیر کو بھی لاگو کیا جا سکتا ہے۔ ایک SOAP پروٹوکول پیغام کلائنٹ کے ذریعہ ریموٹ پروسیجر کال کو کال کرنے کے لئے استعمال کیا جاسکتا ہے جو سرور کی طرف واقع ہے۔
REST بمقابلہ صابن کے فرق
1. فن تعمیر
ایک API کا مقصد بنیادی طور پر سرور پر کسی ایپلیکیشن کی کاروباری منطق کے مخصوص اجزاء دکھانا ہے۔ جبکہ REST اسی مقصد کے لیے URIs کا استعمال کرتا ہے، SOAP اس کے لیے ایک سروس انٹرفیس استعمال کرتا ہے۔
REST APIs ڈیٹا کے بعد بنائے جاتے ہیں، جبکہ SOAP APIs ان افعال کے بعد تیار کیے جاتے ہیں جن کی API وضاحت کرتا ہے۔ SOAP کے مقابلے میں، جو زیادہ فنکشن پر مبنی ہے، REST زیادہ ڈیٹا پر مبنی ڈیزائن ہے۔
2. کیشنگ۔
وہ ڈیٹا جسے کیش ایبل کے طور پر نشان زد کیا گیا ہے براؤزرز کو سرور سے نئی درخواست کرنے کی ضرورت کے بغیر دوبارہ استعمال کیا جا سکتا ہے۔ وقت اور محنت کی بچت اس کا ایک فائدہ ہے۔
جوابات کو HTTP سطح پر کیش نہیں کیا جائے گا کیونکہ SOAP کے سوالات POST درخواستوں کے ذریعے جمع کیے جاتے ہیں، جسے HTTP معیار غیر قابل عمل سمجھتا ہے۔ اگر آپ کیشنگ کو ملازمت دینا چاہتے ہیں، تو آپ کو اب بھی ضروری تکنیکیں بنانا ہوں گی کیونکہ REST APIs میں یہ نفاذ شامل نہیں ہے۔
3. وسائل اور بینڈوتھ
SOAP کے ذریعے استعمال کیے جانے والے لفافے کی طرز کے پے لوڈ ٹرانسفر کی وجہ سے، اوور ہیڈ میں معمولی اضافہ ہوتا ہے، جس کے لیے اضافی بینڈوڈتھ کی ضرورت ہوتی ہے۔ REST کی ہلکی پھلکی نوعیت ان حالات میں ایک فائدہ ہے کیونکہ اسے عام طور پر ویب سروسز کے لیے استعمال کیا جاتا ہے۔
4. سلامتی
WS-سیکیورٹی، جس کی SOAP سپورٹ کرتا ہے اور ٹرانسپورٹ کی سطح پر SSL سے قدرے مکمل ہے، مطلوب ہے۔ اس کے ساتھ انٹرپرائز سطح کے حفاظتی اقدامات کو شامل کرنا بھی ایک بہترین فٹ ہے۔
SSL کا استعمال کرتے ہوئے اینڈ ٹو اینڈ انکرپشن کو SOAP اور REST دونوں سے تعاون حاصل ہے، اور REST HTTPS استعمال کر سکتا ہے، جو HTTP پروٹوکول کا محفوظ ورژن ہے۔
5. پے لوڈز کو ہینڈل کرنا
انٹرنیٹ کے ذریعے منتقل ہونے والے ڈیٹا کو پے لوڈ کہا جاتا ہے۔ ایک پے لوڈ جسے "بھاری" سمجھا جاتا ہے اسے اضافی وسائل کی ضرورت ہوتی ہے۔ SOAP کے مقابلے، جو XML کا استعمال کرتا ہے، REST اکثر JSON اور HTTP کا استعمال کرتا ہے تاکہ پے لوڈ کو کم کرنے میں مدد ملے۔
تیار کردہ کوڈ کے ساتھ ایک خصوصی کلائنٹ لائبریری کو عام طور پر کلائنٹ کے ذریعہ SOAP APIs تک رسائی کے لیے استعمال کیا جانا چاہیے کیونکہ ان کے انتہائی سخت مواصلاتی معاہدے کی وجہ سے۔
نتیجے کے طور پر، SOAP REST کے مقابلے میں کم سطح کی تجرید پیش کرتا ہے اور سرور کے ساتھ زیادہ قریب سے جڑا ہوا ہے۔
REST کب استعمال کریں؟
- عوامی APIs بنانا: REST APIs کو عوامی ویب سروسز بنانے کے لیے ترجیح دی جاتی ہے کیونکہ وہ SOAP APIs کے مقابلے میں استعمال کرنے اور اپنانے میں آسان نظر آتے ہیں۔ مزید برآں، SOAP کئی بلٹ ان حفاظتی اقدامات پیش کرتا ہے جو REST کے پاس نہیں ہے، حالانکہ اوپن ڈیٹا اور سروسز کے ساتھ کام کرتے وقت ان خصوصیات کی ضرورت نہیں ہوتی ہے۔
- موبائل ایپس کی تعمیر: REST موبائل ایپلیکیشنز بنانے کے لیے بہترین ہے کیونکہ یہ چھوٹی، موثر، بے ریاست، اور کیش ایبل ہے۔
- قلیل سرور وسائل اور بینڈوتھ کا استعمال: REST API کی تمام درخواستیں بے وطن ہونی چاہئیں، جس کا مطلب ہے کہ ہر تعامل الگ ہے اور ہر درخواست اور جواب میں وہ تمام ڈیٹا ہوتا ہے جو اس تعامل کو مکمل کرنے کے لیے ضروری ہوتا ہے۔ سرور پچھلی درخواستوں کے ریکارڈ کو محفوظ نہیں کرتا ہے کیونکہ یہ ہر ایک کو تازہ درخواست کے طور پر پیش کرتا ہے۔ نتیجے کے طور پر، سرور کو بہت کم میموری کی ضرورت ہوتی ہے اور وہ زیادہ تیزی سے کام کرتا ہے کیونکہ درخواست کے لیے مزید کارروائی یا تاریخی ڈیٹا کی بازیافت کی ضرورت نہیں ہوتی ہے۔
صابن کب استعمال کریں؟
- نجی APIs بنانا، خاص طور پر بڑے کاروباروں کے لیے: SOAP کارپوریٹ ایپلی کیشنز کے لیے بہترین ہے کیونکہ یہ ایک وکندریقرت، تقسیم شدہ ماحول میں ڈیٹا کے بہاؤ کو قابل بناتا ہے اور کئی آن لائن حفاظتی خصوصیات پر مشتمل ہے۔
- HTTP کے علاوہ ٹرانسپورٹ پروٹوکول کو بنیادی پرت کے طور پر استعمال کرنا: SOAP بنیادی پرت کے طور پر HTTP پر منحصر نہیں ہے۔ آپ کی درخواست پر منحصر ہے، آپ SMTP (سادہ میل ٹرانسفر پروٹوکول)، JMS (جاوا میسجنگ سروس) یا کوئی اور ٹرانسپورٹ پروٹوکول استعمال کر سکتے ہیں۔
- ریاستی آپریشنز کے ساتھ کام کرنا: REST APIs کی درخواستوں کے برعکس، SOAP APIs کی درخواستیں اسٹیٹفول ہوتی ہیں، یعنی سرور کلائنٹ کے بارے میں معلومات محفوظ کرتا ہے اور اسے درخواستوں یا کارروائیوں کے سلسلہ میں استعمال کرتا ہے۔ یہاں تک کہ جب یہ زیادہ سرور بینڈوڈتھ اور وسائل کا استعمال کرتا ہے، یہ روٹین یا منسلک کارروائیوں کو انجام دینے کے لیے اہم ہے، جیسے بینک ٹرانسفر۔
نتیجہ
REST اور SOAP APIs کے درمیان موازنہ یہ بالکل واضح کرتا ہے کہ REST SOAP سے افضل ہے۔ ابھی تک، ایسے حالات ہیں جہاں SOAP API کی ضرورت ہے۔ بعض صورتوں میں، ویب سروسز REST اور SOAP APIs کو ملا کر بنائی جاتی ہیں۔
لہذا، استعمال کا معاملہ اس بات کا تعین کرے گا کہ کون سا API طرز بہترین کام کرے گا۔
جواب دیجئے