هي بلاگ پوسٽ GraphQL APIs جي ڊيزائننگ ۽ لاڳو ڪرڻ جي پيچيدگين تي ڌيان ڏئي ٿي. اهو وضاحت ڪندي شروع ٿئي ٿو ته GraphQL APIs ڇا آهن ۽ اهي ڇو اهم آهن، پوءِ انهن جي اهم خاصيتن ۾ ڳولها ڪري ٿو. اهو بهترين طريقن، ڪارڪردگي جي اصلاح جي حڪمت عملين، ۽ هڪ ڪامياب GraphQL API ڊيزائن لاءِ اهم غورن کي اجاگر ڪري ٿو. اهو هڪ نمونو GraphQL API ڊيزائن پڻ مهيا ڪري ٿو، عام نقصانن ۽ حلن کي اجاگر ڪندي. پوسٽ GraphQL APIs بابت مددگار وسيلن سان ختم ٿئي ٿي ۽ ڪامياب استعمال لاءِ ياد رکڻ لاءِ اهم نقطن جو خلاصو ڪري ٿي.
گراف ڪيو ايل APIsگراف ڪيو ايل ڊيٽا تائين رسائي ۽ هٿ چراند لاءِ هڪ سوال جي ٻولي ۽ API وضاحت آهي. 2012 ۾ فيس بڪ پاران تيار ڪيل ۽ 2015 ۾ عوامي طور تي جاري ڪيل، گراف ڪيو ايل گراهڪن کي انهن جي گهربل ڊيٽا جي درخواست ڪرڻ جي صلاحيت پيش ڪري ٿو. هي اوور فيچنگ يا انڊر فيچنگ جي مسئلن کي ختم ڪري ٿو، جنهن جي نتيجي ۾ وڌيڪ ڪارآمد ۽ بهتر ڊيٽا منتقلي ٿيندي آهي. اهو ڪارڪردگي کي خاص طور تي بهتر بڻائي سگهي ٿو، خاص طور تي موبائل ايپليڪيشنن ۽ گهٽ بينڊوڊٿ ماحول ۾.
خاصيت | گراف ڪيو ايل | آرام ڪريو |
---|---|---|
ڊيٽا آڻڻ | ڪلائنٽ پاران بيان ڪيل ڊيٽا حاصل ڪري ٿو | مقرر ٿيل اينڊ پوائنٽس اڪثر ڪري بيڪار يا گم ٿيل ڊيٽا واپس ڪندا آهن. |
لچڪ | گراهڪن جي ضرورتن مطابق انتهائي موافقت پذير | گهٽ، سرور پاران بيان ڪيل بناوت تي منحصر آهي |
نسخو | عام طور تي ورزننگ جي ضرورت ناهي، اسڪيما ارتقا ذريعي منظم ڪيو ويندو آهي | بار بار ورزننگ جي ضرورت ٿي سگھي ٿي |
قسم جو نظام | مضبوط قسم جو نظام ڊيٽا جي درستگي وڌائي ٿو | ڪمزور قسم جو نظام، ڊيٽا جي درستگي گهٽ آهي |
GraphQL APIs جا فائدا:
GraphQL جي اهميت جديد ايپليڪيشن ڊولپمينٽ ۾ ڊيٽا مئنيجمينٽ کي آسان ۽ بهتر ڪرڻ جي صلاحيت مان پيدا ٿئي ٿي. اهو هڪ مثالي حل آهي، خاص طور تي مائڪرو سروسز آرڪيٽيڪچر ۽ پيچيده ڊيٽا گهرجن سان ايپليڪيشنن لاءِ. گراف ڪيو ايل APIsاهو ڊولپرز لاءِ بهتر تجربو ۽ آخري استعمال ڪندڙن لاءِ تيز، وڌيڪ جوابدار ايپليڪيشنون فراهم ڪري ٿو. اهو ان کي اڄ ڪيترين ئي وڏين ڪمپنين ۽ ڊولپرز لاءِ پسند جي ٽيڪنالاجي بڻائي ٿو.
گراف ڪيو ايل APIs، ان جي لچڪ ۽ ڪارڪردگي جي فائدن جي مهرباني، جديد ويب ۽ موبائل ايپليڪيشن ڊولپمينٽ ۾ اهم ڪردار ادا ڪري ٿو. گهربل ڊيٽا تائين مڪمل رسائي فراهم ڪرڻ سان ڊولپرز کي تيز ۽ وڌيڪ ڪارآمد طريقي سان ڪم ڪرڻ جي اجازت ملندي آهي، جڏهن ته صارف جي تجربي تي پڻ مثبت اثر پوندو آهي.
گراف ڪيو ايل APIsGraphQL روايتي REST APIs جي ڀيٽ ۾ ڪيترائي اهم فائدا پيش ڪري ٿو. اهي فائدا ڊيٽا جي حاصلات کي بهتر ڪرڻ کان وٺي ترقي کي تيز ڪرڻ تائين آهن. هن حصي ۾، اسان انهن اهم خاصيتن تي غور ڪنداسين جيڪي GraphQL کي ايترو طاقتور بڻائين ٿيون.
GraphQL ڪلائنٽس کي اجازت ڏئي ٿو ته اهي صحيح طور تي اهو ڊيٽا بيان ڪن جيڪو انهن کي گهربل آهي. اوور فيچنگ (تمام گهڻو ڊيٽا ڪڍڻ) ۽ اڻ سڌريل نامڪمل ڊيٽا حاصل ڪرڻ جهڙن مسئلن کي ختم ڪندي، اهو نيٽ ورڪ ٽرئفڪ کي گهٽائي ٿو ۽ ڪارڪردگي کي بهتر بڻائي ٿو. ڪلائنٽ سرور کان صرف انهن شعبن جي درخواست ڪري ٿو جن جي ان کي ضرورت آهي، جنهن جي نتيجي ۾ تيز ۽ وڌيڪ ڪارآمد ڊيٽا جي تبادلي ٿيندي آهي.
خاصيت | گراف ڪيو ايل | آرام ڪريو |
---|---|---|
ڊيٽا حاصل ڪرڻ | گراهڪ طرفان طئي ٿيل | سرور پاران طئي ٿيل |
ڊيٽا فارميٽ | هڪ واحد اينڊ پوائنٽ ذريعي لچڪدار ڊيٽا فارميٽ | ڪيترائي اينڊ پوائنٽس، مقرر ٿيل ڊيٽا فارميٽ |
نسخو | نسخ کان سواءِ، ارتقائي API ڊيزائن | شايد ورزننگ جي ضرورت هجي |
قسم جو نظام | طاقتور قسم جو نظام | قسم جو نظام ڪمزور يا غير حاضر آهي |
GraphQL جي هڪ ٻي اهم خصوصيت ان جو مضبوط قسم جو نظام آهي. هي قسم جو نظام هڪ اسڪيما ٺاهڻ جي قابل بڻائي ٿو جيڪو API جي صلاحيتن ۽ ڊيٽا جي جوڙجڪ کي بيان ڪري ٿو. هي اسڪيما ڪلائنٽ ۽ سرور ٻنهي طرفن تي ڊيٽا جي درستگي ۽ تسلسل کي يقيني بڻائي ٿو. هي اسڪيما ڊولپرز کي آساني سان سمجهڻ جي اجازت ڏئي ٿو ته API ڪيئن ڪم ڪري ٿو ۽ غلطين کي وڌيڪ جلدي سڃاڻي ٿو.
GraphQL هڪ ئي سوال اندر ڪيترن ئي ذريعن کان ڊيٽا حاصل ڪرڻ کي فعال بڻائي ٿو. هي هڪ اهم فائدو آهي، خاص طور تي پيچيده يوزر انٽرفيس ۽ منظرنامي ۾ جن ۾ ڪيترن ئي ڊيٽا ذريعن جي ضرورت هوندي آهي. جڏهن ته هن گهرج کي عام طور تي روايتي REST APIs سان گڏ ڪيترن ئي API ڪالن جي ضرورت هوندي آهي، GraphQL هڪ ئي سوال سان سڀني ڊيٽا جي حاصل ڪرڻ کي فعال بڻائي ٿو.
GraphQL جي قسم جي حفاظت ترقي دوران غلطين کي گھٽائي ٿي. اسڪيما واضح طور تي ڊيٽا جي قسمن ۽ لاڳاپن کي بيان ڪري ٿو، ڊولپرز کي غلط سوالن کي لکڻ کان روڪي ٿو. ان کان علاوه، قسم جو نظام ڪوڊ آٽو مڪمل ڪرڻ ۽ غلطي جي چڪاس جهڙن اوزارن جي استعمال کي آسان بڻائي ترقي جي ڪارڪردگي کي وڌائي ٿو. مثال طور:
هڪ GraphQL اسڪيما هڪ معاهدي وانگر آهي؛ اهو بيان ڪري ٿو ته ڪلائنٽ ۽ سرور جي وچ ۾ ڊيٽا ڪيئن مٽايو ويندو. هن معاهدي جو مطلب آهي ته ٻئي ڌريون ڄاڻن ٿيون ته ڇا توقع ڪجي ۽ امڪاني مسئلن جي شروعات ۾ سڃاڻپ ڪري سگهجي ٿي.
اهي خاصيتون، گراف ڪيو ايل APIs هي ان کي جديد ايپليڪيشن ڊولپمينٽ لاءِ هڪ مثالي انتخاب بڻائي ٿو. ڪارڪردگي کي بهتر بڻائڻ کان علاوه، اهو ترقي جي عمل کي به هموار ڪري ٿو ۽ وڌيڪ قابل اعتماد APIs جي تخليق کي قابل بڻائي ٿو.
گراف ڪيو ايل APIs GraphQL کي ترقي ڪرڻ ۽ استعمال ڪرڻ وقت ڪيتريون ئي اهم غور ويچار آهن. اهي بهترين طريقا توهان جي API جي ڪارڪردگي کي بهتر بڻائڻ، ان جي سيڪيورٽي کي يقيني بڻائڻ، ۽ توهان جي ترقي جي عمل کي منظم ڪرڻ ۾ مدد ڪندا. صحيح اوزار ۽ حڪمت عمليون استعمال ڪندي، توهان GraphQL جي پيشڪش مان پورو فائدو وٺي سگهو ٿا.
GraphQL اسڪيما ڊيزائن توهان جي API جي ڪاميابي لاءِ اهم آهي. پنهنجي اسڪيما کي ڊزائين ڪرڻ وقت، توهان کي پنهنجي ڊيٽا ماڊل کي صحيح طور تي ظاهر ڪرڻ گهرجي ۽ پڪ ڪرڻ گهرجي ته ڪلائنٽ آساني سان گهربل ڊيٽا کان پڇي سگهن ٿا. سٺي اسڪيما ڊيزائن توهان جي API جي سمجھ ۽ استعمال کي بهتر بڻائي ٿي.
درخواست جا مرحلا
توهان جي GraphQL APIs کي محفوظ ڪرڻ پڻ هڪ اولين ترجيح هجڻ گهرجي. تصديق ۽ اختيار ڏيڻ واري ميڪانيزم کي صحيح طور تي لاڳو ڪرڻ سان غير مجاز رسائي کي روڪي سگهجي ٿو. توهان کي GraphQL-مخصوص ڪمزورين جي خلاف پڻ احتياط ڪرڻ گهرجي.
بهترين عمل | وضاحت | فائدا |
---|---|---|
اسڪيما ضم | ڪيترن ئي GraphQL اسڪيمن کي هڪ واحد اسڪيما ۾ گڏ ڪرڻ. | ماڊيولريٽي، اسڪيليبلٽي، آسان انتظام. |
ڊيٽا لوڊر استعمال ڪندي | N+1 مسئلي کي حل ڪرڻ لاءِ بلڪ ڊيٽا لوڊنگ. | ڪارڪردگي ۾ واڌارو، ڊيٽابيس لوڊ گھٽجي ويو. |
ڪيشنگ | بار بار رسائي ٿيل ڊيٽا کي ڪيش ڪرڻ. | جوابي وقت گهٽائڻ، وسيلن جي استعمال کي گهٽائڻ. |
غلطي جو انتظام | غلطين کي مسلسل ۽ معنيٰ خيز طور تي حل ڪرڻ. | بهتر ڊولپر تجربو، ڊيبگنگ جي آساني. |
اهو پڻ ضروري آهي ته توهان پنهنجي API جي ڪارڪردگي کي باقاعدي طور تي مانيٽر ڪريو ۽ بهتر بڻايو. جڏهن ته GraphQL يقيني بڻائي ٿو ته ڪلائنٽ صرف ان ڊيٽا جي درخواست ڪن جنهن جي انهن کي ضرورت آهي، خراب طريقي سان ٺهيل سوال يا غير موثر حل ڪندڙ ڪارڪردگي جي مسئلن جو سبب بڻجي سگهن ٿا. تنهن ڪري، سوال جي ڪارڪردگي جو تجزيو ڪرڻ ۽ ضرورت مطابق بهتري ڪرڻ ضروري آهي.
گراف ڪيو ايل APIs APIs کي ڊزائين ڪرڻ ۽ لاڳو ڪرڻ وقت ڪارڪردگي هڪ اهم عنصر آهي جنهن تي غور ڪيو وڃي. هڪ سٺي نموني سان ٺهيل API توهان جي ايپ جي رفتار ۽ صارف جي تجربي تي خاص طور تي اثر انداز ٿي سگهي ٿو. هن حصي ۾، گراف ڪيو ايل APIsاسين توهان جي API جي ڪارڪردگي کي بهتر بڻائڻ لاءِ استعمال ٿيندڙ مختلف حڪمت عملين جو جائزو وٺنداسين. ڪارڪردگي تي اثر انداز ٿيندڙ عنصرن کي سمجهڻ ۽ مناسب اصلاحي ٽيڪنڪ لاڳو ڪرڻ سان توهان جو API ڪارآمد ۽ اسڪيلبل هجڻ کي يقيني بڻائيندو.
گراف ڪيو ايل API جي ڪارڪردگي کي بهتر بڻائڻ لاءِ سوالن کي بهتر بڻائڻ سڀ کان اهم قدمن مان هڪ آهي. اهو يقيني بڻائڻ سان ته ڪلائنٽ صرف ان ڊيٽا جي درخواست ڪن جيڪو انهن کي گهربل آهي، توهان غير ضروري ڊيٽا جي منتقلي ۽ سرور لوڊ کي گهٽائي سگهو ٿا. پيچيده ۽ نيسٽڊ سوالن کي آسان بڻائڻ سان سوالن جي عملدرآمد جو وقت گهٽجي ٿو ۽ مجموعي ڪارڪردگي بهتر ٿئي ٿي.
هيٺ ڏنل جدول سوال جي اصلاح ۽ انهن جي امڪاني فائدن لاءِ مختلف طريقن کي بيان ڪري ٿو:
اصلاح جي ٽيڪنڪ | وضاحت | فائدا |
---|---|---|
فيلڊ جي چونڊ جي اصلاح | صرف ضروري خانن جي درخواست ڪرڻ | گھٽ ڊيٽا منتقلي، تيز جوابي وقت |
سوال ضم ڪريو | ڪيترن ئي سوالن کي هڪ ئي سوال ۾ گڏ ڪرڻ | گهٽ نيٽ ورڪ درخواستون، بهتر ڪارڪردگي |
بيچنگ ۽ ڊيٽا لوڊ ڪندڙ | گھڻي تعداد ۾ ڊيٽا اپلوڊ ڪريو | N+1 سوال جي مسئلي کي حل ڪرڻ، ڊيٽابيس لوڊ گهٽائڻ |
پيچيده سوالن جي سادگي | اندروني سوالن کي ٽوڙڻ | وڌيڪ سمجھڻ وارا ۽ بهتر ڪيل سوال |
Caching گراف ڪيو ايل APIsاهو ڪارڪردگي بهتر ڪرڻ جو هڪ مؤثر طريقو آهي. ڪيش ۾ بار بار رسائي ٿيل ڊيٽا کي ذخيرو ڪرڻ سان، توهان ڊيٽابيس يا ٻين وسيلن ڏانهن غير ضروري درخواستن کي گهٽائي سگهو ٿا. سرور-سائيڊ ۽ ڪلائنٽ-سائيڊ ڪيشنگ حڪمت عملين کي لاڳو ڪندي، توهان جوابي وقت کي گهٽائي سگهو ٿا ۽ پنهنجي API جي مجموعي ڪارڪردگي کي وڌائي سگهو ٿا.
ڪيشنگ حڪمت عملين ۾ اهو طئي ڪرڻ شامل آهي ته ڪيش ۾ ڊيٽا ڪيترو وقت رکيو وڃي ٿو (TTL) ۽ ڪيش ڪيئن اپڊيٽ ڪيو وڃي ٿو. ڊيٽا ڪيتري بار بار ۽ حساس طريقي سان تبديل ٿئي ٿو ان تي منحصر ڪري، توهان مختلف ڪيشنگ طريقا استعمال ڪري سگهو ٿا. مثال طور، جامد ڊيٽا لاءِ ڊگھا TTL استعمال ڪريو، جڏهن ته بار بار ڊيٽا تبديل ڪرڻ لاءِ ننڍا TTL يا ايونٽ تي ٻڌل ڪيش اپڊيٽ استعمال ڪريو.
ڪارڪردگي بهتري جون حڪمت عمليون، گراف ڪيو ايل APIsاهو يقيني بڻائڻ لاءِ ضروري آهي ته توهان جي ايپليڪيشن ڪارآمد ۽ اسڪيلبل هجي. سوال جي اصلاح ۽ ڪيشنگ جهڙين طريقن کي استعمال ڪندي، توهان پنهنجي ايپليڪيشن جي رفتار ۽ صارف جي تجربي کي خاص طور تي بهتر بڻائي سگهو ٿا. ان کان علاوه، مسلسل نگراني ۽ تجزيو ڪندي، توهان ڪارڪردگي جي مسئلن کي جلد سڃاڻي سگهو ٿا ۽ ضروري اصلاح ڪري سگهو ٿا.
گراف ڪيو ايل APIs جڏهن هڪ لچڪدار، ڪارڪردگي وارو، ۽ برقرار رکڻ وارو فن تعمير ٺاهيو وڃي جيڪو توهان جي ايپليڪيشن جي ضرورتن کي پورو ڪري ٿو، اهو تمام ضروري آهي. پهريون قدم توهان جي ڊيٽا ماڊل کي احتياط سان پلان ڪرڻ آهي. اڳ ۾ ئي طئي ڪرڻ ته ڪهڙو ڊيٽا پيش ڪيو ويندو، اهو ڪيئن لاڳاپيل هوندو، ۽ ڪهڙين سوالن جي مدد ڪئي ويندي، توهان کي مستقبل جي پيچيدگين کان بچڻ ۾ مدد ملندي. نالي جي ڪنوينشنن تي عمل ڪرڻ ۽ اسڪيما ڊيزائن ۾ بامعني فيلڊ نالن کي استعمال ڪرڻ توهان جي API جي سمجھ ۽ استعمال ۾ اضافو ڪندو.
GraphQL پاران پيش ڪيل طاقتور ٽائپنگ خاصيتن مان فائدو وٺڻ پڻ ضروري آهي. هر فيلڊ لاءِ صحيح ڊيٽا قسم جي وضاحت ڪرڻ ڪلائنٽ-سائيڊ غلطين کي روڪڻ ۾ مدد ڪري ٿي ۽ ترقي کي تيز ڪري ٿي. ڪسٽم قسمن ۽ اينيمز کي استعمال ڪندي، توهان پنهنجي ڊيٽا ماڊل کي وڌيڪ بهتر بڻائي سگهو ٿا ۽ ان کي پنهنجي ايپليڪيشن جي ضرورتن مطابق ترتيب ڏئي سگهو ٿا. ياد رکو، هڪ سٺي نموني ٺهيل اسڪيما توهان جي API جي بنياد ٺاهيندي آهي ۽ مستقبل جي ترقي لاءِ هڪ مضبوط بنياد فراهم ڪري ٿي.
ڪارڪردگي، گراف ڪيو ايل APIs هي هڪ ٻيو اهم عنصر آهي جنهن تي ڊزائن ۾ غور ڪرڻ گهرجي. پيچيده سوالن کي پروسيس ڪرڻ سرور وسيلن کي استعمال ڪري سگهي ٿو ۽ توهان جي ايپليڪيشن کي سست ڪري سگهي ٿو. تنهن ڪري، توهان کي سوال جي پيچيدگي کي محدود ڪرڻ ۽ غير ضروري ڊيٽا جي حاصلات کي روڪڻ لاءِ قدم کڻڻ جي ضرورت آهي. مثال طور، فيلڊ عرف استعمال ڪرڻ ڪلائنٽ کي صرف ان ڊيٽا جي درخواست ڪرڻ جي اجازت ڏئي ٿو جيڪو ان کي گهربل آهي. ان کان علاوه، ڊيٽا لوڊرز استعمال ڪرڻ سان N+1 مسئلي کي حل ڪري سگهجي ٿو ۽ ڊيٽابيس سوالن جو تعداد گهٽجي سگهي ٿو.
سيڪيورٽي جي مسئلي کي ڪڏهن به نظرانداز نه ڪريو. گراف ڪيو ايل APIsان لاءِ اختيار ۽ تصديق جي طريقيڪار جي صحيح عمل درآمد جي ضرورت آهي. توهان تصديق لاءِ معياري پروٽوڪول جهڙوڪ JWT (JSON ويب ٽوڪن) استعمال ڪري سگهو ٿا ۽ اختيار لاءِ ڪردار تي ٻڌل رسائي ڪنٽرول (RBAC) لاڳو ڪري سگهو ٿا. اضافي طور تي، ان پٽ جي تصديق خراب سوالن کي توهان جي API کي نقصان پهچائڻ کان روڪي سگهي ٿي. اهو پڻ ضروري آهي ته توهان جي API کي باقاعدي طور تي ڪمزورين لاءِ اسڪين ڪيو وڃي ۽ سيڪيورٽي اپڊيٽ لاڳو ڪيا وڃن.
هن حصي ۾، اسين هڪ عملي طريقو اختيار ڪنداسين ۽ هڪ حقيقي دنيا جو منظرنامو فراهم ڪنداسين. گراف ڪيو ايل API اسين ڊيزائن تي ڌيان ڏينداسين. اسان جو مقصد نظرياتي ڄاڻ کي مضبوط ڪرڻ ۽ امڪاني چئلينجن ۽ حلن جو مظاهرو ڪرڻ آهي. اسين هڪ API ٺاهينداسين جيڪو اي-ڪامرس پليٽ فارم لاءِ پراڊڪٽ ۽ ڪيٽيگري جي معلومات کي منظم ڪري ٿو. هي مثال گراف ڪيو ايل APIs اهو توهان کي عملي طور تي توهان جي جسم جي طاقت ۽ لچڪ کي سمجهڻ ۾ مدد ڪندو.
ڊومين جو نالو | ڊيٽا جو قسم | وضاحت |
---|---|---|
سڃاڻپ | سڃاڻپ! | پراڊڪٽ جي منفرد سڃاڻپ. |
نالو | تار! | پراڊڪٽ جو نالو. |
وضاحت | اسٽرنگ | پيداوار جي وضاحت. |
قيمت | ترڻ! | پيداوار جي قيمت. |
اسين پنهنجي ڊيٽا ماڊل جي وضاحت سان شروع ڪنداسين. پراڊڪٽس ۽ ڪيٽيگريز اسان جي اي-ڪامرس پليٽ فارم لاءِ بنيادي ڊيٽا ادارا آهن. هر پراڊڪٽ ۾ هڪ ID، نالو، وضاحت، قيمت، ۽ ڪيٽيگري جي معلومات هوندي. ڪيٽيگريز ۾، موڙ ۾، ID، نالو، ۽ وضاحت لاءِ فيلڊ هوندا. گراف ڪيو ايل اسڪيماهن ڊيٽا ماڊل کي ظاهر ڪرڻ لاءِ ٺاهيو وڃي. اهو يقيني بڻائي ٿو ته گراهڪ بلڪل اهو ڊيٽا حاصل ڪري سگهن ٿا جيڪو انهن کي گهربل آهي.
اڳيون، اسين بنيادي سوالن ۽ ميوٽيشنز کي بيان ڪنداسين. سوال پراڊڪٽس ۽ ڪيٽيگريز کي لسٽ ڪرڻ ۽ ID ذريعي هڪ مخصوص پراڊڪٽ يا ڪيٽيگري حاصل ڪرڻ جهڙن ڪمن کي ڍڪيندا. ميوٽيشنز هڪ نئين پراڊڪٽ يا ڪيٽيگري کي شامل ڪرڻ، موجوده پراڊڪٽ يا ڪيٽيگري کي اپڊيٽ ڪرڻ، ۽ پراڊڪٽ يا ڪيٽيگري کي ختم ڪرڻ جهڙن ڪمن کي ڍڪيندا. گراف ڪيو ايل اسڪيما، انهن عملن کي واضح طور تي بيان ڪرڻ گهرجي.
اسين حل ڪندڙن کي لاڳو ڪنداسين. حل ڪندڙ، GraphQL اسڪيما ۾ هر بيان ڪيل فيلڊ لاءِ، اهو طئي ڪري ٿو ته ڊيٽا جي ذريعن تائين ڪيئن رسائي حاصل ڪئي وڃي ٿي ۽ ڊيٽا ڪيئن واپس ڪئي وڃي ٿي. مثال طور، هڪ پراڊڪٽ جو نالو حاصل ڪرڻ لاءِ، هڪ پارسر ڊيٽابيس مان پراڊڪٽ جي معلومات حاصل ڪندو ۽ نالو فيلڊ واپس ڪندو. ڊيٽا ڪيشنگ حڪمت عمليون ڪارڪردگي کي بهتر بڻائڻ لاءِ پارسر ۾ استعمال ڪري سگهجن ٿيون. هي بار بار رسائي ٿيل ڊيٽا تائين تيز رسائي جي اجازت ڏئي ٿو ۽ ڊيٽابيس لوڊ کي گھٽائي ٿو. موثر تجزيه نگار، API جي مجموعي ڪارڪردگي تي خاص طور تي اثر انداز ٿئي ٿو.
گراف ڪيو ايل APIs ڪجھ عام غلطيون آهن جيڪي شروعاتي ۽ تجربيڪار ڊولپرز ٻنهي کي API ٺاهڻ وقت اڪثر منهن ڏيڻو پوي ٿو. اهي غلطيون API جي ڪارڪردگي کي خراب ڪري سگهن ٿيون، سيڪيورٽي ڪمزوريون متعارف ڪرائي سگهن ٿيون، يا API کي مڪمل طور تي ناقابل استعمال بڻائي سگهن ٿيون. هن حصي ۾، اسان انهن غلطين تي ڌيان ڏينداسين ۽ انهن کي ڪيئن حل ڪجي. اسان جو مقصد آهي گراف ڪيو ايل APIs توهان جي ترقي جي عمل کي وڌيڪ ڪارآمد ۽ هموار بڻائڻ آهي.
انهن عام غلطين مان هڪ آهي اوور-فيچنگ ۽ انڊر-فيچنگ. اهي مسئلا اڪثر REST APIs ۾ سامهون ايندا آهن. گراف ڪيو ايل APIsڊيٽا جي چونڊ جي ڪري ان کي گهٽائي سگهجي ٿو، جيڪو هڪ اهم فائدو آهي. بهرحال، اهي مسئلا اڃا به ٿي سگهن ٿا جيڪڏهن اسڪيما خراب طريقي سان ٺهيل هجي يا جيڪڏهن ڪلائنٽ پاسي غير ضروري فيلڊ جي درخواست ڪئي وڃي. ان کي روڪڻ لاءِ، هميشه پڪ ڪريو ته ڪلائنٽ صرف ان ڊيٽا جي درخواست ڪن جنهن جي انهن کي واقعي ضرورت آهي ۽ پنهنجي اسڪيما ڊيزائن کي ان مطابق بهتر بڻايو.
غلطي جو قسم | وضاحت | حل |
---|---|---|
وڌيڪ آڻڻ | ڊيٽا حاصل ڪرڻ جيڪو ڪلائنٽ کي گهربل ناهي. | ڪلائنٽ پاسي تي صرف ضروري فيلڊز جي درخواست ڪرڻ، اسڪيما آپٽمائيزيشن. |
N+1 سوال جو مسئلو | هڪ مکيه سوال ۽ ان جي بنياد تي ڪيتريون ئي ذيلي سوالون ٺاهڻ. | ڊيٽا لوڊر جهڙن اوزارن سان بيچنگ ۽ ڪيشنگ ميڪانيزم استعمال ڪرڻ. |
سيڪيورٽي ڪمزوريون | ڪمزور سيڪيورٽي اپاءَ جيڪي غير مجاز رسائي ۽ ڊيٽا جي ڀڃڪڙي جو سبب بڻجي سگهن ٿا. | تصديق ۽ اختيار جي عملن تي سخت عمل درآمد، ان پٽ جي تصديق. |
ڪارڪردگي جا مسئلا | سوال جي جواب جو سست وقت ۽ وسيلن جو وڌيڪ استعمال. | سوالن جي اصلاح، انڊيڪسنگ، ڪيشنگ، ۽ غير ضروري پيچيدگي کان بچڻ. |
ٻيو وڏو مسئلو N+1 سوال جو مسئلو آهي. هي مسئلو خاص طور تي تڏهن پيدا ٿئي ٿو جڏهن لاڳاپيل ڊيٽابيس سان ڪم ڪندي ۽ ڪارڪردگي تي خاص طور تي اثر انداز ٿي سگهي ٿو. مثال طور، جيڪڏهن توهان ليکڪن جي فهرست ۽ هر ليکڪ جي ڪتابن کي حاصل ڪرڻ چاهيو ٿا، ته توهان پهريان ليکڪن کي حاصل ڪريو (1 سوال) ۽ پوءِ هر ليکڪ لاءِ انفرادي ڪتاب حاصل ڪريو (N سوال). ان کي حل ڪرڻ لاءِ، توهان ڊيٽا لوڊر جهڙا اوزار استعمال ڪري سگهو ٿا ۽ بيچنگ ميڪانيزم لاڳو ڪري سگهو ٿا. ڊيٽا لوڊر توهان کي هڪ ئي وقت ڪيترن ئي IDs لاءِ ڊيٽا لوڊ ڪرڻ جي اجازت ڏئي ٿو، اهڙي طرح ڊيٽابيس ۾ سوالن جو تعداد گهٽجي ٿو.
سيڪيورٽي تي ڌيان ڏيڻ پڻ ضروري آهي. گراف ڪيو ايل APIsخراب سوالن ۽ غير مجاز رسائي لاءِ ڪمزور ٿي سگھي ٿو. تنهن ڪري، تصديق ۽ اختيار ڏيڻ جي ميڪانيزم کي صحيح طريقي سان لاڳو ڪرڻ، ان پٽ جي تصديق ڪرڻ، ۽ شرح محدود ڪرڻ جهڙن قدمن کي لاڳو ڪرڻ ضروري آهي. توهان کي باقاعدي طور تي پنهنجي API جي سيڪيورٽي جي جانچ ڪرڻ گهرجي ۽ ڪنهن به ڪمزوري کي پيچ ڪرڻ گهرجي. محفوظ ڪريو. گراف ڪيو ايل APIs اهو صارف جي ڊيٽا ٺاهڻ، حفاظت ڪرڻ، ۽ توهان جي سسٽم جي سالميت کي يقيني بڻائڻ لاءِ ضروري آهي.
گراف ڪيو ايل APIs توهان جي صلاحيتن بابت وڌيڪ سکڻ ۽ ترقي ڪرڻ لاءِ ڪيترائي وسيلا موجود آهن. اهي وسيلا بنيادي تصورن کان وٺي جديد طريقن تائين، موضوعن جي هڪ وسيع رينج کي ڍڪيندا آهن. گراف ڪيو ايل پروگرامنگ جي دنيا ۾ داخل ٿيندڙن لاءِ شروعاتي سطح جو مواد موجود آهي، ۽ تجربيڪار ڊولپرز لاءِ پيچيده مسئلن کي حل ڪرڻ لاءِ رهنمائي موجود آهي. انهن وسيلن جي مهرباني، گراف ڪيو ايل APIs توهان پنهنجي ڊيزائن ۽ ترقي جي عمل کي وڌيڪ ڪارآمد بڻائي سگهو ٿا.
گراف ڪيو ايل APIs ترقي ڪرڻ دوران توهان مختلف اوزار ۽ لائبريريون پڻ استعمال ڪري سگهو ٿا. اهي اوزار نه رڳو ترقي جي عمل کي تيز ڪري سگهن ٿا پر ڊيبگنگ ۽ ڪارڪردگي جي اصلاح جهڙين شين ۾ پڻ مدد ڪري سگهن ٿا. هيٺ ڏنل جدول مشهور ڏيکاري ٿو گراف ڪيو ايل هتي اوزارن ۽ لائبريرين جو هڪ جائزو آهي:
اوزار/لائبريري جو نالو | وضاحت | استعمال جا علائقا |
---|---|---|
اپولو گرافڪول | آخر کان آخر تائين گراف ڪيو ايل پليٽ فارم | ڪلائنٽ ۽ سرور سائڊ ڊولپمينٽ |
گراف ڪيو ايل. جي ايس | گراف ڪيو ايل (جاوا اسڪرپٽ) لاءِ حوالي جي عمل درآمد | سرور سائڊ گراف ڪيو ايل APIs |
رلي | فيس بڪ پاران تيار ڪيل گراف ڪيو ايل گراهڪ | پيچيده ڊيٽا مئنيجمينٽ جي ضرورت واريون ايپليڪيشنون |
گرافڪ ايل | گراف ڪيو ايل APIs کي ڳولڻ ۽ جانچڻ لاءِ IDE | API ترقي ۽ جانچ جا عمل |
وڌيڪ، گراف ڪيو ايل APIs وڌيڪ گهري سکيا لاءِ مختلف آن لائن ڪورس، بلاگ پوسٽون، ۽ ڪميونٽي فورم پڻ موجود آهن. اهي پليٽ فارم حقيقي دنيا جي منظرنامي مان مثال فراهم ڪندي توهان جي سکيا جي حمايت ڪن ٿا. مثال طور، گراف ڪيو ايل ڪميونٽي فورمز ۾، توهان پنهنجي مسئلن جا حل ڳولي سگهو ٿا ۽ ٻين ڊولپرز سان پنهنجا تجربا شيئر ڪري سگهو ٿا.
گراف ڪيو ايل APIs هن ميدان ۾ هڪ مسلسل ارتقا پذير ماحولياتي نظام آهي. تنهن ڪري، تازه ڪاري رهڻ ۽ نئين ٽيڪنالاجي جي پيروي ڪرڻ ضروري آهي. هيٺ ڏنل، گراف ڪيو ايل هتي ڪجھ تجويز ڪيل وسيلا آهن جيڪي توهان جي سکيا جي سفر ۾ مدد ڪري سگهن ٿا:
انهن وسيلن کي استعمال ڪندي، گراف ڪيو ايل APIs توهان موضوع تي پنهنجي ڄاڻ وڌائي سگهو ٿا ۽ پنهنجي منصوبن ۾ وڌيڪ ڪامياب ٿي سگهو ٿا. ياد رکو، مسلسل سکيا ۽ مشق، گراف ڪيو ايل ماهر بڻجڻ لاءِ سڀ کان اهم قدم آهن.
هن آرٽيڪل ۾، گراف ڪيو ايل APIs اسان ڊيزائن ۽ عملدرآمد جي عملن دوران غور ڪرڻ لاءِ اهم نقطن کي ڍڪيو آهي. اسان چڱي طرح جانچيو آهي ته GraphQL ڇا آهي، اهو ڇو اهم آهي، ان جون اهم خاصيتون، بهترين طريقا، ڪارڪردگي بهتر ڪرڻ جون حڪمت عمليون، ڊيزائن جا خيال، عام غلطيون، ۽ حل. اسان جو مقصد توهان کي توهان جي منصوبن ۾ GraphQL کي ڪاميابي سان استعمال ڪرڻ لاءِ هڪ جامع گائيڊ فراهم ڪرڻ آهي.
معيار | گراف ڪيو ايل | آرام ڪريو |
---|---|---|
ڊيٽا آڻڻ | گراهڪ طرفان طئي ٿيل | سرور پاران طئي ٿيل |
لچڪ | هاءِ | گهٽ |
ڪارڪردگي | بهتر (گهٽ ڊيٽا منتقلي) | بدتر (وڌيڪ ڊيٽا منتقلي) |
نسخو | ضروري ناهي | ضروري |
هڪ ڪامياب گراف ڪيو ايل API ان کي لاڳو ڪرڻ لاءِ، توهان کي پهريان پنهنجي ضرورتن کي صحيح طور تي بيان ڪرڻ گهرجي ۽ ان مطابق هڪ اسڪيما ڊزائين ڪرڻ گهرجي. اسڪيما ڊيزائن توهان جي API جو بنياد ٺاهيندو آهي ۽ مستقبل جي توسيع لاءِ هڪ مضبوط بنياد رکندو آهي. ان کان علاوه، ڪارڪردگي جي اصلاح کي جلد شروع ڪرڻ سان توهان جي ايپليڪيشن جي اسڪيليبلٽي وڌندي.
ڪارروائي ڪرڻ لاءِ قدم
ياد رکو ته، گراف ڪيو ايل APIs اهو هڪ مسلسل ترقي ڪندڙ ميدان آهي. تنهن ڪري، ڪامياب عملدرآمد لاءِ جديد رجحانن ۽ بهترين طريقن تي تازه ڪاري رهڻ تمام ضروري آهي. ڪميونٽي وسيلن ۽ جديد دستاويزن کي ڳولهي پنهنجي ڄاڻ کي تازو رکو. سکڻ ۽ تجربو ڪرڻ لاءِ کليل رهو. هن طريقي سان، توهان پنهنجي منصوبن ۾ GraphQL APIs کي ڪاميابي سان استعمال ڪري سگهو ٿا ۽ مقابلي ۾ فائدو حاصل ڪري سگهو ٿا.
هن گائيڊ ۾ پيش ڪيل معلومات ۽ صلاحن تي غور ڪندي، گراف ڪيو ايل APIs توهان اثرائتي نموني سان ڊيزائن، لاڳو ۽ انتظام ڪري سگهو ٿا. اسان توهان جي ڪاميابي جي خواهشمند آهيون!
گراف ڪيو ايل APIs توهان جي API کي ڊزائين ڪرڻ ۽ لاڳو ڪرڻ وقت ذهن ۾ رکڻ لاءِ ڪيترائي اهم نقطا آهن. اهي نقطا سڌو سنئون توهان جي API جي ڪارڪردگي، سيڪيورٽي ۽ دستيابي تي اثر انداز ٿي سگهن ٿا. صحيح فيصلا ڪرڻ ۽ بهترين طريقن تي عمل ڪرڻ هڪ ڪامياب لاءِ اهم آهن. گراف ڪيو ايل API تخليق ڪرڻ جي ڪنجي آهي.
GraphQL APIs جي طاقت کي مڪمل طور تي استعمال ڪرڻ لاءِ ڪارڪردگي جي اصلاح تي ڌيان ڏيڻ تمام ضروري آهي. توهان پيچيده سوالن کي ٽوڙي، غير ضروري ڊيٽا جي منتقلي کي روڪي، ۽ ڪيشنگ ميڪانيزم کي استعمال ڪندي پنهنجي API جي رفتار وڌائي سگهو ٿا. توهان جي ڊيٽابيس سوالن کي بهتر ڪرڻ سان ڪارڪردگي تي پڻ مثبت اثر پوندو.
معيار | وضاحت | تجويز ڪيل ڪارروائي |
---|---|---|
اسڪيما ڊيزائن | پيچيده ۽ غير ضروري فيلڊ کان پاسو ڪريو. | هڪ سادو ۽ واضح خاڪو ٺاهيو. |
ڪارڪردگي | سست سوالن جي سڃاڻپ ۽ اصلاح ڪريو. | ڪيشنگ ۽ سوال جي اصلاح جي طريقن کي لاڳو ڪريو. |
سيڪيورٽي | اختيار ۽ تصديق جي ميڪانيزم جي جانچ ڪريو. | مضبوط سيڪيورٽي پاليسيون لاڳو ڪريو. |
نگراني | API جي استعمال ۽ غلطين کي ٽريڪ ڪريو. | پنهنجي API جي باقاعدي نگراني ۽ تجزيو ڪريو. |
سيڪيورٽي، گراف ڪيو ايل APIs هي توهان جي ڪاروبار لاءِ سڀ کان اهم مسئلن مان هڪ آهي. غير مجاز رسائي کي روڪڻ ۽ ڊيٽا جي رازداري کي بچائڻ لاءِ، توهان کي تصديق ۽ اختيار ڏيڻ واري ميڪانيزم کي صحيح طرح سان ترتيب ڏيڻ گهرجي. امڪاني ڪمزورين کي سڃاڻڻ ۽ انهن کي حل ڪرڻ لاءِ باقاعدي طور تي سيڪيورٽي ٽيسٽنگ ڪرڻ پڻ ضروري آهي.
گراف ڪيو ايل APIsاهو ضروري آهي ته ورزننگ حڪمت عمليون استعمال ڪيون وڃن ته جيئن توهان جو API مسلسل ترقي پذير ضرورتن کي پورو ڪري سگهي. پسمانده مطابقت برقرار رکڻ سان، توهان پنهنجي API کي بيحد اپڊيٽ ڪري سگهو ٿا ۽ نوان خاصيتون شامل ڪري سگهو ٿا. ياد رکو، هڪ ڪامياب لاءِ گراف ڪيو ايل API، مسلسل سار سنڀال ۽ بهتري جي ضرورت آهي.
GraphQL APIs کي REST APIs کان وڌيڪ فائديمند ڇو سمجهيو ويندو آهي؟
GraphQL ڪلائنٽ کي اجازت ڏئي ٿو ته اهي ڪهڙي ڊيٽا جي ضرورت آهي، اوور فيچنگ ۽ انڊر فيچنگ جي مسئلن کي ختم ڪري ٿو. REST عام طور تي هڪ مخصوص اينڊ پوائنٽ مان ڊيٽا جو هڪ اڳواٽ مقرر ڪيل سيٽ حاصل ڪري ٿو، جيڪو ڪلائنٽ لاءِ غير ضروري ڊيٽا منتقلي جو سبب بڻجي سگهي ٿو. GraphQL هڪ واحد اينڊ پوائنٽ ذريعي ڪيترن ئي وسيلن تائين رسائي جي اجازت ڏيندي ڪلائنٽ-سائيڊ پيچيدگي کي پڻ گھٽائي ٿو.
گراف ڪيو ايل اسڪيما ٺاهڻ وقت اسان کي ڪهڙين ڳالهين تي غور ڪرڻ گهرجي؟ اسان کي ڪهڙن اصولن تي غور ڪرڻ گهرجي؟
جڏهن هڪ GraphQL اسڪيما ٺاهيو وڃي، ته هڪ صاف ۽ سمجھڻ واري جوڙجڪ ٺاهڻ ضروري آهي. اعتراض جي قسمن، فيلڊز، ۽ لاڳاپن کي مسلسل بيان ڪيو وڃي. هڪ API ٺاهڻ لاءِ بامعني نالو ڏيڻ جي ڪنوينشن ۽ وضاحتن کي استعمال ڪريو جيڪي ڪلائنٽ آساني سان سمجهي ۽ استعمال ڪري سگهن. اهو پڻ ضروري آهي ته هڪ لچڪدار ڊيزائن اختيار ڪئي وڃي جيڪا مستقبل جي تبديلين سان مطابقت رکي سگهي.
GraphQL APIs ۾ ڪارڪردگي جي مسئلن کي روڪڻ لاءِ ڪهڙا طريقا لاڳو ڪري سگهجن ٿا؟
ڪارڪردگي جي مسئلن کي روڪڻ لاءِ مختلف طريقا لاڳو ڪري سگھجن ٿا. انهن ۾ N+1 مسئلي کي حل ڪرڻ لاءِ ڊيٽا لوڊرز استعمال ڪرڻ، پيچيده سوالن کي بهتر بڻائڻ، ڪيشنگ ميڪانيزم (ميموري ۾، ريڊيس، وغيره) لاڳو ڪرڻ، ۽ سوالن جي پيچيدگي کي محدود ڪرڻ شامل آهن. API جي ڪارڪردگي جي باقاعدي نگراني ڪرڻ ۽ رڪاوٽن جي سڃاڻپ ڪرڻ پڻ ضروري آهي.
GraphQL APIs ۾ اختيار ۽ تصديق ڪيئن مهيا ڪجي؟ ڪهڙا حفاظتي اپاءَ وٺڻ گهرجن؟
GraphQL APIs ۾ اختيار ۽ تصديق عام طور تي مڊل ويئر يا GraphQL حل ڪندڙن ۾ لاڳو ڪئي ويندي آهي. JWT (JSON ويب ٽوڪن) جهڙا معيار تصديق لاءِ استعمال ڪري سگھجن ٿا. اختيار کي رول بيسڊ رسائي ڪنٽرول (RBAC) يا ڊومين بيسڊ اختيار ذريعي لاڳو ڪري سگهجي ٿو. اضافي طور تي، API کي خراب سوالن کان بچائڻ لاءِ سوال جي کوٽائي ۽ پيچيدگي جي حدن جهڙا قدم لاڳو ڪيا وڃن.
GraphQL ۾ ريزولور ڇا آهي ۽ اهو ڇا ڪندو آهي؟ ڇا ريزولور جا مختلف قسم آهن؟
ريزولور اهڙا ڪم آهن جن ۾ گراف ڪيو ايل اسڪيما ۾ هر فيلڊ لاءِ ڊيٽا حاصل ڪرڻ ۽ هٿرادو ڪرڻ جو منطق شامل آهي. جڏهن هڪ فيلڊ جي درخواست ڪئي ويندي آهي، ته لاڳاپيل ريزولور فنڪشن کي سڏيو ويندو آهي ۽ ڊيٽا واپس ڪندو آهي. ريزولور مختلف قسمن جا ٿي سگهن ٿا: فيلڊ ريزولور (جيڪي هڪ فيلڊ لاءِ ڊيٽا حاصل ڪن ٿا)، لسٽ ريزولور (جيڪي هڪ فهرست واپس ڪن ٿا)، ۽ ميوٽيشن ريزولور (جيڪي ڊيٽا کي تبديل ڪن ٿا). ريزولور ڊيٽا ذريعن (ڊيٽابيس، API، وغيره) تائين رسائي کي منظم ڪن ٿا ۽ گراف ڪيو ايل اسڪيما مطابق ڊيٽا کي فارميٽ ڪن ٿا.
GraphQL APIs کي جانچڻ لاءِ ڪهڙا اوزار ۽ طريقا استعمال ڪري سگهجن ٿا؟
GraphQL API جي جانچ لاءِ مختلف اوزار ۽ طريقا موجود آهن. Apollo Client Developer Tools، GraphiQL، ۽ Insomnia جهڙا اوزار API ۽ ٽيسٽ سوالن کي ڳولڻ لاءِ استعمال ڪري سگھجن ٿا. اهو تصديق ڪرڻ پڻ ضروري آهي ته API صحيح طريقي سان ڪم ڪري ٿو ۽ يونٽ ٽيسٽ ۽ انٽيگريشن ٽيسٽ لکي متوقع نتيجا پيدا ڪري ٿو. ٽيسٽن کي تصديق ڪرڻ گهرجي ته حل ڪندڙ صحيح ڊيٽا واپس ڪن ٿا، اختيار جا ضابطا صحيح طور تي لاڳو ڪيا ويا آهن، ۽ غلطي جي حالتن کي صحيح طريقي سان سنڀاليو ويو آهي.
GraphQL APIs ڊزائين ڪرڻ وقت اسان کي ڪهڙين عام غلطين کان پاسو ڪرڻ گهرجي؟
GraphQL APIs کي ڊزائين ڪرڻ وقت بچڻ لاءِ ڪجھ عام نقصانن ۾ N+1 سوال جو مسئلو، تمام گهڻو پيچيده سوال، ناکافي اختيار جي چڪاس، نامناسب ڪيشنگ حڪمت عمليون، ۽ اسڪيما ڊيزائن ۾ عدم مطابقتون شامل آهن. انهن نقصانن کان بچڻ لاءِ، ڪارڪردگي جي اصلاح جي طريقن کي لاڳو ڪرڻ، سيڪيورٽي کي ترجيح ڏيڻ، ۽ اسڪيما ڊيزائن تي احتياط سان ڌيان ڏيڻ ضروري آهي.
GraphQL اسڪيما جو نسخو ڇو ضروري آهي ۽ اسان اهو ڪيئن ڪري سگهون ٿا؟
GraphQL اسڪيما کي ورجن ڪرڻ سان API ۾ تبديليون بتدريج متعارف ڪرائڻ جي اجازت ملندي آهي بغير موجوده ڪلائنٽس تي اثر انداز ٿيڻ جي. اسڪيما ورجننگ خاص طور تي اهم آهي جڏهن API ۾ پسمانده-غير مطابقت رکندڙ تبديليون ڪيون وڃن. ورجننگ لاءِ مختلف طريقا استعمال ڪري سگهجن ٿا: هڪ نئين اينڊ پوائنٽ ذريعي هڪ نئين اسڪيما متعارف ڪرائڻ، اسڪيما اندر ورجن جي معلومات کي برقرار رکڻ، يا فيلڊز کي نشان لڳائڻ. سڀ کان وڌيڪ مناسب طريقو منصوبي جي گهرجن ۽ پيچيدگي تي منحصر آهي.
وڌيڪ ڄاڻ: گراف ڪيو ايل جي سرڪاري ويب سائيٽ
جواب ڇڏي وڃو