GraphQL तब चुनें जब कई अलग clients को एक ही जुड़े हुए डेटा की अलग अलग शक्लें चाहिए हों और आप overfetching या हर स्क्रीन के लिए अलग endpoint भेजने से थक चुके हों। REST तब चुनें जब सतह छोटी हो, HTTP caching मायने रखती हो, या इस्तेमाल करने वाले स्क्रीन नहीं मशीनें हों। GraphQL जटिलता हटाता नहीं; वह उसे endpoints के फैलाव से हटाकर resolver की गहराई, query cost की सीमाओं और उस caching में डाल देता है जो अब आपकी है।
इंटरव्यूअर यह क्यों पूछते हैं
यह जांचता है कि आप तकनीक बंदिशों से चुनते हैं या फैशन से। इंटरव्यूअर असली ट्रेड-ऑफ सुनना चाहता है, खासकर caching और query cost पर, क्योंकि छह महीने बाद GraphQL टीमों को चोट वहीं लगती है। जो उम्मीदवार दोनों पक्षों की दलील देकर फिर एक पर टिक सके वह आर्किटेक्चर के फैसले सौंपने लायक लगता है; जो सिर्फ GraphQL के फायदे गिनाए वह नहीं।
अपना जवाब कैसे स्ट्रक्चर करें
- वह शर्त बताएं जो GraphQL को इस लायक बनाती है।
- वह शर्त बताएं जो REST को बेहतर डिफ़ॉल्ट बनाती है।
- GraphQL जो ऑपरेशनल लागतें जोड़ता है, वे गिनाएं।
- आपको जो संदर्भ दिया गया है, उसके लिए एक सिफारिश पर पहुंचें।
उदाहरण जवाब
मेरा फैसला clients की विविधता से तय होता है। अगर एक ही web client है और endpoints साफ साफ स्क्रीनों से मेल खाते हैं, तो REST कम मशीनरी है और आपको HTTP caching, CDN का बर्ताव और curl से डिबग करने की सुविधा मुफ्त मिलती है। जैसे ही आपके पास एक web ऐप, एक mobile ऐप और एक partner integration हों जिन्हें उसी graph के अलग अलग टुकड़े चाहिए, REST या तो पचास अलग endpoints बन जाता है या ऐसे मोटे responses जिनकी कीमत mobile यूज़र cellular डेटा में चुकाते हैं। तभी GraphQL अपनी कीमत वसूल करता है। जो मैं टीम को पहले ही बता देता हूं वह यह कि इसके साथ क्या आता है। आपको query की गहराई और लागत की सीमाएं चाहिए वरना एक nested query डेटाबेस को पीट सकती है, आपको dataloader जैसी batching चाहिए वरना resolvers डिफ़ॉल्ट रूप से N plus one queries बनाते हैं, और HTTP caching ज़्यादातर काम करना बंद कर देती है क्योंकि सब कुछ एक ही URL पर POST है, तो आप caching resolver या entity स्तर पर करते हैं। मध्यम आकार के प्रोडक्ट पर मैं ईमानदारी से REST से शुरू करूंगा और GraphQL तभी जोड़ूंगा जब कोई दूसरा बहुत अलग client आ जाए।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- किसी दुर्भावनापूर्ण गहरी nested query को कैसे रोकेंगे?
- जब सब कुछ एक ही endpoint है, तो GraphQL में caching कैसे संभालते हैं?
- clients को तोड़े बिना GraphQL schema को version कैसे करते हैं?
फुल स्टैक डेवलपर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें