3 पॉइंट द्वारा kunggom 2023-01-11 | 1 टिप्पणियां | WhatsApp पर शेयर करें

Microsoft 365 cloud services से जुड़ी applications बनाकर उनका maintenance करने वालों के लिए Microsoft Graph API से बचना लगभग नामुमकिन है। जो लोग इससे परिचित नहीं हैं, उनके लिए संक्षेप में कहें तो यह MS द्वारा दिए जाने वाले सभी cloud resources तक एकीकृत रूप से पहुंचने के लिए RESTful API है। MS इस API को सुविधाजनक तरीके से इस्तेमाल करने के लिए कुछ भाषाओं में Graph SDK भी प्रदान करता है.

समस्या यह थी कि इस API का उपयोग करने वाले हिस्सों को टेस्ट करना काफी मुश्किल था। मुझे यह बात खास तौर पर तब महसूस हुई जब Graph API पर rate limit लगने की वजह से response 429 Too Many Requests आता था। Graph SDK का उपयोग करने पर throttling के कारण 429 response code मिलने पर response header के Retry-After मान के अनुसार यह अपने-आप retry करता है, लेकिन कुछ मामलों में retry न करके जल्दी fail करना, या default से अलग policy लागू करना, ज्यादा बेहतर होता था। दिक्कत यह थी कि development environment में ऐसे मामलों को टेस्ट करने का कोई ठीक-ठाक तरीका नहीं था, इसलिए शुरुआती product deploy करने के बाद ही मुझे पता चला कि Graph SDK की request retry policy को default से बदलना चाहिए था, और फिर बाद के version में उसे सुधारना पड़ा।

MS भी इस समस्या को कुछ हद तक समझता था, इसलिए API request URL में test429=true parameter जोड़ने पर 429 response code वाले मामले को mock करने की सुविधा जोड़ी गई, लेकिन इसकी सीमा यह थी कि यह केवल SharePoint/OneDrive से जुड़े endpoints पर ही काम करता था।
https://pnp.github.io/blog/post/…

इसी बीच नए साल की शुरुआत में आखिरकार एक स्वागतयोग्य tool आया: Microsoft Graph Developer Proxy।
यह Graph API से लौटने वाले तरह-तरह के response values को mock कर सकता है, और विभिन्न errors या throttling को भी आसानी से reproduce कर सकता है। बोनस यह है कि टेस्ट किए जाने वाले requests local development environment से बाहर नहीं जाते। अभी यह development के शुरुआती चरण में है, लेकिन कहा जा रहा है कि इस साल के भीतर इसका official version जारी हो जाएगा। कम से कम इस क्षेत्र में काम करने वालों के लिए यह वास्तव में बहुत सुविधाजनक tool है।

1 टिप्पणियां

 
kunggom 2023-01-11

जानकारी के लिए, इस टूल के आने से पहले भी Graph API में 429 लगने वाली स्थिति की नकल करने का बिल्कुल कोई तरीका नहीं था, ऐसा नहीं है। Fiddler जैसे टूल का उपयोग करने का तरीका मौजूद था। लेकिन वह काफ़ी असुविधाजनक था.

ऊपर परिचित कराया गया टूल, README के अनुसार, पिछले साल (2022) की एक हैकाथॉन प्रतियोगिता में Waldek Mastykarz नामक व्यक्ति ने बनाया था। और उस व्यक्ति की पुरानी (2018) ब्लॉग पोस्ट को देखें, तो उसमें Fiddler के साथ SharePoint API में 429 लगने वाली स्थिति को simulate करने का तरीका बताया गया है।
https://blog.mastykarz.nl/simulating-throttling-sharepoint/