CodeGym /جاوا بلاگ /Random-SD /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، گهڻو ڪري آئي ٽي دنيا ۾، هڪ مخفف آهي. اهو "نمائندگي واري رياست جي منتقلي" مان نڪتل آهي . هي ڪمپيوٽر نيٽ ورڪ ۾ ورهايل نظام جي اجزاء جي وچ ۾ رابطي لاء هڪ تعميراتي انداز آهي. آسان لفظ ۾، REST سسٽم جي مختلف حصن جي وچ ۾ رابطي (ڊيٽا مٽائڻ) جي انداز کي طئي ڪري ٿو، جن مان هر هڪ جسماني طور تي مختلف هنڌن تي واقع ٿي سگهي ٿو. هي آرڪيٽيڪچرل اسلوب ورهايل نظام کي ڊزائين ڪرڻ وقت پابندين جو هڪ مسلسل سيٽ آهي. اهي رڪاوٽون ڪڏهن ڪڏهن REST جي رهنمائي ڪندڙ اصولن کي سڏيو ويندو آهي. اهڙا ڪيترائي نه آهن، صرف 6. اسان انهن بابت ٿوري دير بعد ڳالهائينداسين.
REST اصولن کي ذهن ۾ رکندي ٺاهيل ايپليڪيشنون، يعني اهي جيڪي REST جي پابندين جي ڀڃڪڙي نه ٿيون ڪن، انهن کي ”RESTful“ چئبو آهي.

REST جي تاريخ

REST اصطلاح رائو فيلڊنگ پاران متعارف ڪرايو ويو، جيڪو HTTP پروٽوڪول جي تخليق ڪندڙن مان هڪ آهي، پنهنجي پي ايڇ ڊي ۾. 2000 ۾ "آرڪيٽيڪچرل اسٽائلز ۽ نيٽ ورڪ تي ٻڌل سافٽ ويئر آرڪيٽيڪچرز جي ڊيزائن" جو عنوان ڏنو ويو. جيتوڻيڪ اصطلاح REST کي اڃا به نوجوان سڏيو وڃي ٿو، تصور جيڪو اهو نمائندگي ڪري ٿو اهو ورلڊ وائڊ ويب جي بنيادي حصي ۾ آهي. اسان اصطلاح جي تاريخ ۾ اوندھ نه ڪنداسين. جيڪڏھن توھان چاھيو ٿا پرائمري ذريعن ۾، ھڪ نظر وٺو فيلڊنگ جي مقالي تي .

باقي پابنديون ۽ اصول

جيئن مٿي بيان ڪيو ويو آهي، REST بيان ڪري ٿو ته ڪيئن ورهايل سسٽم جا حصا هڪ ٻئي سان لهه وچڙ ۾ هجن. عام طور تي، اهو هڪ درخواست-جواب عمل جي ذريعي ٿئي ٿو. جزو جيڪو درخواست موڪلي ٿو ڪلائنٽ سڏيو ويندو آهي ، ۽ جزو جيڪو درخواست تي عمل ڪري ٿو ۽ ڪلائنٽ ڏانهن جواب موڪلي ٿو سرور سڏيو ويندو آهي . درخواستون ۽ جواب گهڻو ڪري موڪليا ويندا آهن HTTP پروٽوڪول ذريعي. HTTP جو مطلب آهي هائپر ٽيڪسٽ ٽرانسفر پروٽوڪول. عام طور تي، هڪ سرور ڪجهه ويب ايپليڪيشن آهي. ڪلائنٽ تقريبا ڪجھ به ٿي سگهي ٿو. مثال طور، هڪ موبائل ايپ جيڪا سرور کان ڊيٽا جي درخواست ڪري ٿي. يا هڪ برائوزر جيڪو ڊيٽا کي ڊائون لوڊ ڪرڻ لاءِ ويب پيج تان سرور ڏانهن درخواستون موڪلي ٿو. ايپليڪيشن A ايپليڪيشن B کان ڊيٽا جي درخواست ڪري سگهي ٿي. هن صورت ۾، A هڪ ڪلائنٽ آهي B جي حوالي سان، ۽ B هڪ سرور آهي A جي حوالي سان. ساڳئي وقت، A B، C، D، وغيره کان درخواستن تي عمل ڪري سگهي ٿو. انهي حالت ۾، ايپليڪيشن اي ٻئي سرور ۽ ڪلائنٽ آهي. هر شي تي دارومدار رکي ٿي. ھڪڙي شيء يقيني آھي: جزو جيڪو درخواست موڪلي ٿو ڪلائنٽ آھي. جزو جيڪو وصول ڪري ٿو، پروسيس ڪري ٿو ۽ درخواست جو جواب ڏئي ٿو سرور آهي. بهرحال، هر سسٽم نه آهي جنهن جا حصا هڪ درخواست جي جواب جي عمل ذريعي گفتگو ڪن ٿا هڪ آرام وارو نظام آهي. هڪ سسٽم لاءِ RESTful سمجهي وڃي، ان کي لازمي طور تي ڇهن پابندين جي تعميل ڪرڻ گهرجي:

1. ڪلائنٽ-سرور آرڪيٽيڪچر

هي رڪاوٽ خدشات جي الڳ ٿيڻ بابت آهي. اهو ضروري آهي ته ڪلائنٽ انٽرفيس جي ضرورتن کي الڳ ڪرڻ جي ضرورتن کان سرور جي ضرورتن کان جيڪو ڊيٽا کي محفوظ ڪري ٿو. هي رڪاوٽ ڪلائنٽ ڪوڊ کي ٻين پليٽ فارمن ڏانهن وڌيڪ پورٽبل بڻائي ٿو، ۽ سرور جي پاسي کي آسان ڪرڻ سسٽم جي اسپيبلبل کي بهتر بڻائي ٿو. "ڪلائنٽ" ۽ "سرور" جي وچ ۾ فرق ڪرڻ انهن کي هڪ ٻئي کان آزاديء سان ترقي ڪرڻ جي اجازت ڏئي ٿو.

2. بي وطن

هڪ آرامده فن تعمير کي هيٺين شرطن کي پورا ڪرڻ جي ضرورت آهي. درخواستن جي وچ واري عرصي ۾، سرور کي ڪلائنٽ جي رياست ۽ ان جي برعڪس بابت معلومات ذخيرو نه ڪرڻ گهرجي. ڪلائنٽ کان سڀني درخواستن کي لازمي طور تي ٺهيل هجڻ گهرجي جيڪا سرور کي درخواست مڪمل ڪرڻ لاء تمام ضروري معلومات ڏئي ٿي. اهڙيء طرح، سرور ۽ ڪلائنٽ ٻئي ڪنهن به وصول ٿيل پيغام کي "سمجھ" ڪري سگھن ٿا، بغير ڪنهن پوئين پيغام تي ڀروسو ڪرڻ جي.

3. ڪيش لائق

ڪلائنٽ سرور جي جوابن کي ڪيش ڪري سگھن ٿا. اهي، موڙ ۾، واضح طور تي يا ظاهري طور تي ڪيش ٿيل يا غير ڪيش ٿيل طور نامزد ڪيا وڃن، انهي ڪري ته گراهڪ ايندڙ درخواستن جي جواب ۾ پراڻي يا غلط ڊيٽا حاصل نه ڪن. صحيح ڪيشنگ مڪمل طور تي يا جزوي طور تي ڪجهه ڪلائنٽ-سرور رابطي کي ختم ڪرڻ ۾ مدد ڪري ٿي، وڌيڪ سسٽم جي ڪارڪردگي ۽ اسڪيبلٽي کي وڌائڻ.

4. يونيفارم انٽرفيس

RESTful فن تعمير جي بنيادي ضرورتن ۾ هڪ متحد، يونيفارم انٽرفيس شامل آهي. ڪلائنٽ کي هميشه فارميٽ ۽ ايڊريس کي سمجهڻ گهرجي ته ان کي درخواست موڪلڻ وقت استعمال ڪرڻ جي ضرورت آهي، ۽ سرور، موڙ ۾، اهو پڻ سمجهڻ گهرجي ته اهو فارميٽ استعمال ڪرڻ گهرجي جڏهن ڪلائنٽ جي درخواستن جو جواب ڏيڻ گهرجي. هي مسلسل ڪلائنٽ-سرور رابطي جو بيان ڪري ٿو ته ڇا، ڪٿي، ڪهڙي شڪل ۾، ۽ ڪيئن ڊيٽا موڪلڻ لاء هڪ متحد انٽرفيس آهي.

5. پرت

تہن جي ذريعي، اسان جو مطلب آھي نيٽ ورڪ جي ترتيب واري جوڙجڪ. ڪڏهن ڪڏهن هڪ ڪلائنٽ سڌو سنئون سرور سان رابطو ڪري سگهي ٿو، ۽ ڪڏهن ڪڏهن اهو صرف هڪ وچولي نوڊ سان رابطو ڪري ٿو. وچولي سرورز جو استعمال وڌائي سگھي ٿو اسڪالائيبلٽي لوڊ بيلنسنگ ۽ ورهايل ڪيشنگ جي مهرباني. اچو ته هڪ مثال ڏيو. تصور ڪريو هڪ موبائل ايپ جيڪا سڄي دنيا ۾ مشهور آهي. ايپ جو هڪ لازمي حصو شامل آهي تصويرون لوڊ ڪرڻ. ان جي استعمال ڪندڙن جو تعداد لکن ۾ آهي، تنهن ڪري هڪ واحد سرور اهڙي ڳري لوڊ کي هٿي نه ٿو ڏئي سگهي. سسٽم کي پرت ۾ ورهائڻ سان اهو مسئلو حل ٿيندو. جيڪڏهن ڪلائنٽ هڪ وچولي نوڊ کان تصوير جي درخواست ڪري ٿو، پوء وچولي نوڊ سرور کان تصوير جي درخواست ڪري ٿو جيڪا هن وقت گهٽ ۾ گهٽ لوڊ ٿيل آهي ۽ تصوير کي ڪلائنٽ ڏانهن موٽائي ٿو. جيڪڏهن ڪيشنگ صحيح طريقي سان لاڳو ڪئي وئي آهي هر سطح جي هر سطح تي، پوء سٺي سسٽم اسڪيلبلٽي حاصل ڪري سگهجي ٿي.

6. مطالبو تي ڪوڊ (اختياري)

هن رڪاوٽ جو مطلب آهي ته ڪلائنٽ پنهنجي ڪارڪردگي کي وڌائي سگھي ٿو سرور کان ڪوڊ ڊائون لوڊ ڪندي ايپليٽ يا اسڪرپٽ جي صورت ۾.

آرام واري فن تعمير جا فائدا

ايپليڪيشنون جيڪي مٿي بيان ڪيل مڙني پابندين جي تعميل ڪن ٿيون انهن ۾ هيٺيان فائدا آهن: اعتبار (ڪلائنٽ جي رياست کي بچائڻ جي ضرورت ناهي، جيڪا شايد گم ٿي سگهي ٿي)
  • ڪارڪردگي (ڪيش جي استعمال جي ڪري)
  • پيماني تي
  • شفاف رابطي
  • سادي انٽرفيس
  • پورائيبلٽي
  • آساني سان تبديليون ڪرڻ جي صلاحيت
  • ترقي ڪرڻ ۽ نئين ضرورتن کي اپنائڻ جي صلاحيت
REST جو جائزو. حصو 2: ڪلائنٽ ۽ سرور جي وچ ۾ رابطو REST جو جائزو. حصو 3: اسپرنگ بوٽ تي آرام واري خدمت جي تعمير
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION