حصو 1: REST ڇا آهي هن حصي ۾ اسان هڪ ويجھو نظر وجهنداسين ته ڪئين ڪميونيڪيشن ڪلائنٽ ۽ سرور جي وچ ۾ ٿئي ٿي. رستي ۾، اسان نئين شرطن کي ظاهر ڪنداسين ۽ انهن جي وضاحت ڪنداسين. هر شي کي صاف ڪرڻ لاءِ (ٿيڻ) واضح ڪرڻ لاءِ، اسان تجزيو ڪنداسين ڪلائنٽ-سرور ڪميونيڪيشن جو مثال استعمال ڪندي ڪجهه RESTful ايپليڪيشن. اچو ته چئو ته اسان هڪ ويب ايپليڪيشن ٺاهي رهيا آهيون جيڪا گراهڪن ۽ انهن جي آرڊر بابت معلومات محفوظ ڪرڻ جي قابل آهي. اهي. اسان جو سسٽم ڪجهه ادارن کي هٿي ڏيڻ جي قابل آهي: انهن کي ٺاهڻ، انهن کي تبديل ڪرڻ، انهن کي حذف ڪرڻ، ۽ انهن بابت معلومات مهيا ڪرڻ. اهي ادارا هوندا:
- کلائنٽ - گراهڪ؛
- آرڊر - ڪسٽمر آرڊر؛
- شيون- سامان.
درخواستون
ڪلائنٽ جون درخواستون تقريبن هميشه HTTP تي ڪيون وينديون آهن. عام طور تي، HTTP درخواستون ڪيترن ئي حصن تي مشتمل آهن:- HTTP جو طريقو؛
- عنوان؛
- URI؛
- جسم جي درخواست.
URI ۽ وسيلا
ڊيٽا جيڪا ڪلائنٽ حاصل ڪري ٿي يا درخواستن ذريعي تبديل ڪري ٿي وسيلن کي سڏيو ويندو آهي. ڪلائنٽ-سرور رابطي جو بنياد وسيلن جي ورڇ آهي. REST ۾ وسيلا ڪجھ به آھن جن کي نالو ڏئي سگھجي ٿو. هڪ لحاظ کان، اهي جاوا ۾ طبقن وانگر آهن. جاوا ۾ اسان ڪنهن به شيءِ لاءِ ڪلاس ٺاهي سگهون ٿا. اهو REST ۾ ساڳيو آهي - هڪ وسيلو ڪجهه به ٿي سگهي ٿو: هڪ صارف، هڪ دستاويز، هڪ رپورٽ، هڪ آرڊر. اهو سڀ ڪجهه ٿي سگهي ٿو يا ته ڪنهن اداري جو خلاصو يا ڪجهه ڪنڪريٽ، مثال طور، هڪ فائل - هڪ تصوير، وڊيو، اينيميشن، PDF فائل. اسان جي مثال لاء، اسان وٽ 3 وسيلا آهن:- کلائنٽ - گراهڪ؛
- آرڊر - ڪسٽمر آرڊر؛
- شيون- سامان.
- /ڪلائنٽس - سڀني موجوده گراهڪن جي URI؛
- /ڪلائنٽس/23 - هڪ مخصوص ڪلائنٽ جو URI، يعني ڪلائنٽ ID = 23 سان؛
- /ڪلائنٽس/4 - هڪ مخصوص ڪلائنٽ جو URI، يعني ڪلائنٽ ID = 4 سان.
- /ڪلائنٽ/4/آرڊرز - ڪلائنٽ نمبر 4 جي سڀني آرڊرن جو URI؛
- /clients/1/orders/12 - ڪلائنٽ نمبر 1 جو آرڊر نمبر 12 جو URI.
- /clients/1/orders/12/items — آرڊر نمبر 12 ۾ سڀني پراڊڪٽس جي لسٽ جو يو آر آءِ ڪلائنٽ نمبر 1 پاران ٺاهيو ويو آهي.
HTTP جو طريقو
HTTP طريقو (انگريزي HTTP طريقو) ڪنهن به اکرن جو هڪ سلسلو آهي، سواء ڪنٽرول ۽ جدا ڪندڙ، جيڪو هڪ وسيلن تي مکيه آپريشن کي ظاهر ڪري ٿو. اتي ڪيترائي عام HTTP طريقا آھن. اسان انهن کي لسٽ ڪريون ٿا جيڪي اڪثر استعمال ڪيا ويندا آهن RESTful خدمتن ۾:- GET - هڪ مخصوص وسيلن جي باري ۾ معلومات حاصل ڪرڻ لاء استعمال ڪيو ويو (ID ذريعي) يا وسيلن جي هڪ مجموعو؛
- پوسٽ - هڪ نئون وسيلو ٺاهڻ لاء استعمال ڪيو؛
- PUT - وسيلن کي تبديل ڪرڻ لاء استعمال ڪيو ويو (ID ذريعي)؛
- DELETE - هڪ وسيلو کي ختم ڪرڻ لاء استعمال ڪيو ويو (ID ذريعي).
مٿو
درخواستون، گڏوگڏ جواب، HTTP هيڊر تي مشتمل آهن. اهي درخواست (يا جواب) بابت اضافي معلومات موڪليندا آهن. هيڊر اهم-قدر جوڙو آهن. توھان وڪيپيڊيا صفحي تي سڀ کان عام عنوانن جي لسٽ پڙھي سگھو ٿا . REST سان، گراهڪ اڪثر ڪري موڪلي سگھن ٿا هڪ قبول هيڊر انهن جي درخواست ۾ سرور ڏانهن. اهو ضروري آهي ته سرور کي خبر ڏيو ته ڪهڙي شڪل ۾ ڪلائنٽ ان کان جواب حاصل ڪرڻ جي اميد رکي ٿو. مختلف فارميٽ جا اختيار پيش ڪيا ويا آھن نام نهاد MIME قسم جي فهرست ۾. MIME (Multipurpose Internet Mail Extensions) معلومات کي انڪوڊنگ ڪرڻ ۽ پيغامن کي فارميٽ ڪرڻ لاءِ هڪ وضاحت آهي ته جيئن اهي انٽرنيٽ تي موڪلي سگهجن. هر MIME قسم ٻن حصن تي مشتمل آهي، هڪ سليش سان الڳ ٿيل: هڪ قسم ۽ هڪ ذيلي قسم. فائلن جي مختلف قسمن لاءِ MIME قسمن جا مثال:- متن - متن/سادو، ٽيڪسٽ/سي ايس ايس، ٽيڪسٽ/html؛
- تصوير - تصوير/png، تصوير/jpeg، تصوير/gif؛
- آڊيو - آڊيو/واو، آڊيو/mpeg؛
- وڊيو - وڊيو/mp4، وڊيو/ogg؛
- ايپليڪيشن - ايپليڪيشن/جيسن، ايپليڪيشن/پي ڊي ايف، ايپليڪيشن/xml، ايپليڪيشن/آڪٽٽ-اسٽريم.
Accept:application/json
هي هيڊر سرور کي ٻڌائي ٿو ته ڪلائنٽ JSON فارميٽ ۾ جواب حاصل ڪرڻ جي اميد رکي ٿو.
جسم جي درخواست
هڪ پيغام جيڪو ڪلائنٽ طرفان سرور ڏانهن موڪليو ويو آهي. ڇا هڪ درخواست جو جسم آهي يا نه ان تي منحصر آهي HTTP درخواست جي قسم تي. مثال طور، GET ۽ DELETE درخواستن ۾ عام طور تي ڪا به درخواست جسم شامل ناهي. پر PUT ۽ POST تي مشتمل ٿي سگھي ٿو: اهو سڀ ڪجهه درخواست جي قسم جي فنڪشنل مقصد بابت آهي. آخرڪار، ڊيٽا حاصل ڪرڻ ۽ ان کي id ذريعي حذف ڪرڻ (جيڪو URL ۾ منتقل ٿيل آهي)، توهان کي سرور ڏانهن اضافي ڊيٽا موڪلڻ جي ضرورت ناهي. پر ھڪڙو نئون وسيلو ٺاھڻ لاءِ (پوسٽ جي درخواست)، توھان کي ھي وسيلو منتقل ڪرڻ جي ضرورت آھي. ساڳيو ئي هڪ موجوده وسيلن کي تبديل ڪرڻ لاء آهي. REST ۾، XML يا JSON فارميٽ اڪثر ڪري استعمال ٿيل آهن درخواست جي جسم کي منتقل ڪرڻ لاء. سڀ کان وڌيڪ عام فارميٽ JSON آهي. فرض ڪريو اسان سرور ڏانهن هڪ درخواست موڪلڻ چاهيون ٿا، ۽ ان ۾ هڪ نئون وسيلو ٺاهيو. جيڪڏهن توهان کي ياد آهي، مثال طور اسان هڪ ايپليڪيشن کي ڏٺو جيڪو ڪسٽمر آرڊر کي منظم ڪري ٿو. اچو ته چئو ته اسان هڪ نئون ڪلائنٽ ٺاهڻ چاهيون ٿا. اسان جي صورت ۾، اسان ڪلائنٽ جي باري ۾ هيٺين معلومات کي ذخيرو ڪندا آهيون: نالو اي ميل فون نمبر پوء اهڙي درخواست جو جسم هيٺ ڏنل JSON ٿي سگهي ٿو:{
"name" : "Amigo",
"email" : "amigo@jr.com",
"phone" : "+7 (191) 746-43-23"
}
درخواستون گڏ ڪرڻ
تنهن ڪري، اسان ڏٺو آهي ته ڪلائنٽ جي درخواست ڪهڙي ٿي سگهي ٿي. اچو ته هاڻي وضاحت سان سوالن جا ڪجهه مثال ڏيوندرخواست | وصف |
---|---|
|
ڪلائنٽ نمبر 23 بابت ڄاڻ حاصل ڪريو json يا xml فارميٽ ۾ |
|
ھيٺ ڏنل شعبن سان ھڪڙو نئون ڪلائنٽ ٺاھيو: نالو - اميگو اي ميل - amigo@jr.com ٽيليفون. — +7 (191) 746-43-23 |
|
ڪلائنٽ #1 کي ھيٺين طور تبديل ڪريو: نالو - بين اي ميل - bigben@jr.com Tel. - +380 (190) 346-42-13 |
|
سسٽم مان ڪسٽمر نمبر 12 مان آرڊر نمبر 6 ختم ڪريو |
جواب
اچو ته سرور جي جوابن بابت ڪجهه لفظ چئون. جواب عام طور تي هيٺين حصن تي مشتمل آهي:- جوابي ڪوڊ؛
- هيڊر؛
- جوابي جسم.
HTTP جوابي ڪوڊ
اچو ته HTTP جوابي ڪوڊس تي وڌيڪ نظر رکون. هتي وڪيپيڊيا مان هڪ اقتباس آهي: HTTP اسٽيٽس ڪوڊ HTTP پروٽوڪول ذريعي درخواستن لاءِ سرور جي جواب جي پهرين لائن جو حصو آهي. اهو ٽي ڊيسيمل انگن سان هڪ عددي عدد آهي. پهريون انگ اشارو ڪري ٿو درجي جي حالت. جوابي ڪوڊ عام طور تي انگريزيءَ ۾ هڪ وضاحتي جملي جي پٺيان هوندو آهي جيڪو هڪ جاءِ سان جدا ڪيو ويندو آهي، جيڪو شخص کي هن خاص جواب جو سبب ٻڌائيندو آهي. مثال:- 201 ٺھيل؛
- 401 غير مجاز؛
- 507 ڪافي اسٽوريج.
- 1ХХ - معلوماتي؛
- 2ХХ - ڪلائنٽ جي درخواست جي ڪامياب قبوليت ۽ پروسيسنگ جي ڪيسن بابت ڄاڻ؛
- 3XX - ڪلائنٽ کي ٻڌايو ته آپريشن کي ڪاميابي سان مڪمل ڪرڻ لاء، اهو ضروري آهي ته هڪ ٻي درخواست ڪرڻ، عام طور تي مختلف URI استعمال ڪندي؛
- 4ХХ - ڪلائنٽ جي غلطي. مثال طور، هڪ غلط تعمير ٿيل درخواست يا مشهور 404 نه مليو ڪوڊ، جيڪو ٿي سگهي ٿو جڏهن ڪو ڪلائنٽ غير موجود وسيلن جي درخواست ڪري ٿو؛
- 5ХХ - سرور جي غلطي. ڪلائنٽ ڏانهن واپس آيو جيڪڏهن آپريشن ناڪام ٿي سرور جي غلطي جي ڪري.
GO TO FULL VERSION