CodeGym /جاوا بلاگ /Random-UR /REST کا جائزہ۔ حصہ 1: آرام کیا ہے؟
John Squirrels
سطح
San Francisco

REST کا جائزہ۔ حصہ 1: آرام کیا ہے؟

گروپ میں شائع ہوا۔
ہائے! آج ہم ایک ایسے موضوع کے بارے میں جانیں گے جو بہت دلچسپ ہے اور سب سے اہم بات یہ ہے کہ لیبر مارکیٹ میں زیادہ مانگ ہے: REST۔ REST کا جائزہ۔  حصہ 1: آرام کیا ہے؟  - 1 ہم REST کے اپنے جائزہ کو تین حصوں میں تقسیم کریں گے:
  1. پہلے حصے میں، ہم REST کی تاریخ کا احاطہ کریں گے اور ان اصولوں کو بیان کریں گے جن پر REST کی بنیاد ہے۔

  2. دوسرے میں، ہم غور کریں گے کہ HTTP پروٹوکول کے ذریعے کلائنٹ اور سرور کے درمیان بات چیت کیسے ہوتی ہے۔

  3. تیسرے میں، ہم ایک چھوٹی سی RESTful ایپلی کیشن لکھیں گے جسے ہم "پوسٹ مین" نامی پروگرام کے ذریعے جانچیں گے۔

مضمون کا مقصد ان قارئین کے لیے ہے جو درج ذیل اصطلاحات سے واقف ہیں:
  • HTTP
  • URL اور URI
  • JSON اور (کسی حد تک) XML
  • انحصار انجکشن

حصہ 1. REST کیا ہے؟

REST، جیسا کہ IT کی دنیا میں بہت کچھ ہے، ایک مخفف ہے۔ یہ "ریپریزنٹیشنل اسٹیٹ ٹرانسفر" سے ماخوذ ہے ۔ یہ کمپیوٹر نیٹ ورک میں تقسیم شدہ نظام کے اجزاء کے درمیان تعامل کے لیے ایک تعمیراتی انداز ہے۔ سادہ لفظوں میں، REST نظام کے مختلف اجزاء کے درمیان تعامل (ڈیٹا کا تبادلہ) کے لیے انداز کا تعین کرتا ہے، جن میں سے ہر ایک کو جسمانی طور پر مختلف جگہوں پر رکھا جا سکتا ہے۔ یہ آرکیٹیکچرل سٹائل رکاوٹوں کا ایک مستقل سیٹ ہے جس پر عمل کرتے وقت تقسیم شدہ نظام کو ڈیزائن کیا جاتا ہے۔ ان رکاوٹوں کو بعض اوقات REST کے رہنما اصول کہا جاتا ہے۔ بہت سے نہیں، صرف 6۔ ہم ان کے بارے میں تھوڑی دیر بعد بات کریں گے۔
REST اصولوں کو ذہن میں رکھ کر بنائی گئی ایپلی کیشنز، یعنی جو REST کی پابندیوں کی خلاف ورزی نہیں کرتی ہیں، انہیں "RESTful" کہا جاتا ہے۔

REST کی تاریخ

REST کی اصطلاح رائی فیلڈنگ نے متعارف کروائی تھی، جو HTTP پروٹوکول کے تخلیق کاروں میں سے ایک ہے، اپنے پی ایچ ڈی میں۔ 2000 میں "آرکیٹیکچرل اسٹائلز اینڈ دی ڈیزائن آف نیٹ ورک بیسڈ سافٹ ویئر آرکیٹیکچرز" کے عنوان سے مقالہ۔ ہم اصطلاح کی تاریخ میں گہرائی میں نہیں جائیں گے۔ اگر آپ بنیادی ذرائع میں غوطہ لگانا چاہتے ہیں تو فیلڈنگ کے مقالہ پر ایک نظر ڈالیں ۔

باقی پابندیاں اور اصول

جیسا کہ اوپر بتایا گیا ہے، REST اس بات کی وضاحت کرتا ہے کہ تقسیم شدہ نظام کے اجزاء کو ایک دوسرے کے ساتھ کس طرح تعامل کرنا چاہیے۔ عام طور پر، یہ درخواست کے جواب کے عمل کے ذریعے ہوتا ہے۔ وہ جزو جو درخواست بھیجتا ہے اسے کلائنٹ کہا جاتا ہے ، اور وہ جزو جو درخواست پر کارروائی کرتا ہے اور کلائنٹ کو جواب بھیجتا ہے اسے سرور کہا جاتا ہے ۔ درخواستیں اور جوابات اکثر HTTP پروٹوکول کے ذریعے بھیجے جاتے ہیں۔ HTTP کا مطلب ہے ہائپر ٹیکسٹ ٹرانسفر پروٹوکول۔ عام طور پر، سرور کچھ ویب ایپلیکیشن ہوتا ہے۔ کلائنٹ تقریبا کچھ بھی ہو سکتا ہے. مثال کے طور پر، ایک موبائل ایپ جو سرور سے ڈیٹا کی درخواست کرتی ہے۔ یا ایسا براؤزر جو ڈیٹا ڈاؤن لوڈ کرنے کے لیے ویب پیج سے سرور کو درخواستیں بھیجتا ہے۔ درخواست A ایپلیکیشن B سے ڈیٹا کی درخواست کر سکتی ہے۔ اس صورت میں، B کے حوالے سے A ایک کلائنٹ ہے، اور B A کے حوالے سے ایک سرور ہے۔ اسی وقت، A B، C، D، وغیرہ کی درخواستوں پر کارروائی کر سکتا ہے۔ اس صورت میں، ایپلیکیشن A ایک سرور اور کلائنٹ دونوں ہے۔ سب کچھ سیاق و سباق پر منحصر ہے۔ ایک چیز یقینی ہے: وہ جزو جو درخواست بھیجتا ہے وہ کلائنٹ ہے۔ وہ جزو جو کسی درخواست کو وصول کرتا ہے، اس پر کارروائی کرتا ہے اور اس کا جواب دیتا ہے وہ سرور ہے۔ تاہم، ہر وہ نظام نہیں جس کے اجزاء درخواست کے جواب کے عمل کے ذریعے بات چیت کرتے ہیں ایک آرام دہ نظام نہیں ہے۔ ایک سسٹم کو آرام دہ تصور کرنے کے لیے، اسے چھ REST پابندیوں کی تعمیل کرنی چاہیے:

1. کلائنٹ سرور فن تعمیر

یہ پابندی خدشات کی علیحدگی کے بارے میں ہے۔ کلائنٹ انٹرفیس کی ضروریات کو سرور کی ضروریات سے الگ کرنا ضروری ہے جو ڈیٹا کو ذخیرہ کرتا ہے۔ یہ رکاوٹ کلائنٹ کوڈ کو دوسرے پلیٹ فارمز کے لیے زیادہ پورٹیبل بناتی ہے، اور سرور سائیڈ کو آسان بنانے سے سسٹم کی اسکیل ایبلٹی بہتر ہوتی ہے۔ "کلائنٹ" اور "سرور" کے درمیان فرق کرنا انہیں ایک دوسرے سے آزادانہ طور پر تیار ہونے کی اجازت دیتا ہے۔

2. بے وطن

ایک آرام دہ فن تعمیر کے لیے درج ذیل شرائط کو پورا کرنے کی ضرورت ہوتی ہے۔ درخواستوں کے درمیان کی مدت میں، سرور کو کلائنٹ کی حالت اور اس کے برعکس معلومات کو ذخیرہ نہیں کرنا چاہیے۔ کلائنٹ کی طرف سے تمام درخواستیں اس طرح سے مرتب کی جانی چاہئیں جو سرور کو درخواست کو مکمل کرنے کے لیے تمام ضروری معلومات فراہم کرے۔ اس طرح، سرور اور کلائنٹ دونوں پچھلے پیغامات پر بھروسہ کیے بغیر کسی بھی موصول ہونے والے پیغام کو "سمجھ" سکتے ہیں۔

3. قابل ذخیرہ

کلائنٹ سرور کے جوابات کیش کر سکتے ہیں۔ یہ، بدلے میں، واضح طور پر یا واضح طور پر کیشڈ یا نان کیشڈ کے طور پر نامزد کیا جانا چاہئے، تاکہ کلائنٹس کو بعد کی درخواستوں کے جواب میں پرانا یا غلط ڈیٹا موصول نہ ہو۔ درست کیشنگ کچھ کلائنٹ-سرور کے تعاملات کو مکمل یا جزوی طور پر ختم کرنے میں مدد کرتی ہے، جس سے سسٹم کی کارکردگی اور اسکیل ایبلٹی میں مزید اضافہ ہوتا ہے۔

4. یونیفارم انٹرفیس

آرام دہ فن تعمیر کی بنیادی ضروریات میں ایک متحد، یکساں انٹرفیس شامل ہے۔ کلائنٹ کو ہمیشہ اس فارمیٹ اور ایڈریس کو سمجھنا چاہیے جو اسے درخواست بھیجتے وقت استعمال کرنے کی ضرورت ہے، اور سرور کو اس فارمیٹ کو بھی سمجھنا چاہیے جو اسے کلائنٹ کی درخواستوں کا جواب دیتے وقت استعمال کرنا چاہیے۔ یہ مستقل کلائنٹ سرور تعامل جو یہ بتاتا ہے کہ کیا، کہاں، کس شکل میں، اور ڈیٹا کیسے بھیجنا ہے ایک متحد انٹرفیس ہے۔

5. تہیں

تہوں سے، ہمارا مطلب نیٹ ورک کی درجہ بندی کی ساخت ہے۔ کبھی کبھی ایک کلائنٹ سرور کے ساتھ براہ راست بات چیت کرسکتا ہے، اور بعض اوقات یہ صرف ایک انٹرمیڈیٹ نوڈ کے ساتھ بات چیت کرتا ہے۔ انٹرمیڈیٹ سرورز کا استعمال لوڈ بیلنسنگ اور ڈسٹری بیوٹڈ کیشنگ کی بدولت اسکیل ایبلٹی کو بڑھا سکتا ہے۔ آئیے ایک مثال پیش کرتے ہیں۔ ایک موبائل ایپ کا تصور کریں جو پوری دنیا میں مقبول ہے۔ ایپ کا ایک لازمی حصہ تصاویر لوڈ کرنا شامل ہے۔ اس کے صارفین کی تعداد لاکھوں میں ہے، اس لیے ایک سرور اتنا بھاری بوجھ برداشت نہیں کر سکتا۔ نظام کو تہوں میں الگ کرنے سے یہ مسئلہ حل ہو جائے گا۔ اگر کلائنٹ انٹرمیڈیٹ نوڈ سے تصویر کی درخواست کرتا ہے، تو انٹرمیڈیٹ نوڈ سرور سے تصویر کی درخواست کرتا ہے جو اس وقت کم سے کم لوڈ ہے اور کلائنٹ کو تصویر واپس کردیتا ہے۔ اگر کیشنگ کو درجہ بندی کے ہر سطح پر صحیح طریقے سے لاگو کیا جاتا ہے، تو پھر اچھی سسٹم اسکیل ایبلٹی حاصل کی جاسکتی ہے۔

6. کوڈ آن ڈیمانڈ (اختیاری)

اس رکاوٹ کا مطلب یہ ہے کہ کلائنٹ ایپلٹس یا اسکرپٹس کی شکل میں سرور سے کوڈ ڈاؤن لوڈ کرکے اپنی فعالیت کو بڑھا سکتا ہے۔

آرام دہ فن تعمیر کے فوائد

مذکورہ بالا تمام رکاوٹوں کی تعمیل کرنے والی ایپلیکیشنز کے درج ذیل فوائد ہیں: قابل اعتماد (کلائنٹ کی حالت کو بچانے کی ضرورت نہیں، جو ضائع ہو سکتی ہے)
  • کارکردگی (کیشے کے استعمال کی وجہ سے)
  • توسیع پذیری
  • شفاف مواصلات
  • سادہ انٹرفیس
  • پورٹیبلٹی
  • آسانی سے تبدیلیاں کرنے کی صلاحیت
  • نئی ضروریات کو تیار کرنے اور اپنانے کی صلاحیت
REST کا جائزہ۔ حصہ 2: کلائنٹ اور سرور کے درمیان مواصلت REST کا جائزہ۔ حصہ 3: اسپرنگ بوٹ پر ایک آرام دہ سروس کی تعمیر
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION