OpenMRS प्रोजेक्ट

इस पेज में, Docs के Google सीज़न के लिए स्वीकार किए गए तकनीकी राइटिंग प्रोजेक्ट की जानकारी दी गई है.

प्रोजेक्ट की खास जानकारी

ओपन सोर्स संगठन:
OpenMRS
तकनीकी लेखक:
सौरभ
प्रोजेक्ट का नाम:
REST API के लिए, उपयोगकर्ता के हिसाब से बनाए गए GitHub दस्तावेज़ को बढ़ाना
प्रोजेक्ट की अवधि:
मानक अवधि (तीन महीने)

प्रोजेक्ट का विवरण

मुख्य मकसद

एपीआई के इस्तेमाल के बारे में दिशा-निर्देश जोड़ने के लिए, OpenMRS स्वैगर पर आधारित REST API दस्तावेज़ को बेहतर बनाएं.

प्रोजेक्ट का ब्यौरा

OpenMRS REST API, डेवलपर के लिए OpenMRS से डेटा ऐक्सेस करने के मुख्य तरीकों में से एक है. पहले से ही OpenMRS Webservices API के स्वैगर पर आधारित अपने-आप जनरेट होने वाले दस्तावेज़ और GitHub पर आधारित स्टैटिक दस्तावेज़ मौजूद हैं. हमें Docs के इस सीज़न में, GitHub पर आधारित दस्तावेज़ उपलब्ध कराना है.

शॉर्ट वीडियो की खास जानकारी

बर्क के सुझाव के अनुसार OpenMRS टॉक पर की गई थोड़ी सी रिसर्च के बाद, मुझे पता चला कि यह प्रोजेक्ट साल 2017 में GSOC प्रोजेक्ट के तौर पर शुरू हुआ था. Gayan Weerakutti का मुख्य उद्देश्य, OpenMRS REST API के मौजूदा दस्तावेज़ को बेहतर बनाना है. इसके लिए, स्वैगर की खास बातों में सुधार करना और इसके स्वैगर स्पेसिफ़िकेशन को जनरेट करने के तरीके में सुधार करना है, ताकि स्वैगर दस्तावेज़ का बेहतर वर्शन जनरेट हो सके. प्रोजेक्ट में हासिल की गई ज़रूरी जानकारी के बारे में इस OpenMRS टॉक पोस्ट में बताया गया है और यह काफ़ी मददगार भी है.

फिर, 2019 में इस प्रोजेक्ट में बदलाव किया गया. इसके बाद, हमने स्वैगर के दस्तावेज़ों में बदलाव करने के बजाय, इस प्रोजेक्ट में अलग-अलग तरह के बदलाव किए. इसके बजाय, हमने एक स्टैटिक GitHub पर काम करने वाला दस्तावेज़ तैयार किया है. हम Docs के इस सीज़न में इसे आगे बढ़ाने वाले हैं.

इसलिए, हम आपको मौजूदा प्रोजेक्ट के जो प्रस्ताव देना चाहते हैं उसमें यह है :

  1. यहां कुछ लोकप्रिय भाषाओं के उदाहरण दिए जा रहे हैं (खास तौर पर जावा और JavaScript के बारे में बताया गया है).
  2. स्लेट का दस्तावेज़ बनाने के लिए, Play Store की मदद से स्वैगर ""आज़माएं"" सुविधा की तरह ही इस सुविधा को भी जोड़ा जा सकता है.
  3. अब तक किए गए काम को रीफ़ैक्टरिंग और बेहतर बनाना.
  4. जो संसाधन नहीं हैं उन्हें ढूंढना और जोड़ना.
  5. दस्तावेज़ों के कंसोल सेक्शन में थोड़ी और जानकारी जोड़ें

पूरी जानकारी

  1. अलग-अलग भाषाओं के उदाहरण देखें.

मेरा सुझाव है कि Java में ऐसे उदाहरण जोड़ें जो SDK टूल पर आधारित हों और फिर रेट्रोफ़िट के उदाहरण जोड़ें. मेरी राय में, इन उदाहरणों से हमारे दस्तावेज़ को और बेहतर बनाया जा सकता है. इसकी वजह यह है कि JavaScript जैसी एक और भाषा में उदाहरण जोड़ना, रेट्रोफ़िट के उदाहरणों को जोड़ने जितना मददगार नहीं होगा, क्योंकि मैंने OpenMRS Android क्लाइंट पर काम करते समय इन REST API का इस्तेमाल किया है. साथ ही, खास तौर पर Android के लिए एंडपॉइंट का इस्तेमाल करने पर मदद पाने के लिए कोई संसाधन उपलब्ध नहीं थे. Android क्लाइंट में OpenMRS API एंडपॉइंट से जुड़े मेरे अनुभव को देखते हुए, मैं यहां क्वालिटी के कुछ उदाहरण आसानी से बनाऊंगा. इस बारे में मैं अपने मेंटॉर के साथ चर्चा करूंगा और इस पर काम करूंगा/करूंगी कि इसका फ़ैसला कैसे लिया जाए. इसके अलावा, काम करने वाली कार्रवाइयों के उदाहरण जोड़ने के अलावा, हमें कुछ प्रोग्रामिंग भाषाओं में OpenMRS सर्वर से पुष्टि करने के लिए भी उदाहरण जोड़ने चाहिए. फ़िलहाल, हमारे पास इसके लिए सिर्फ़ कर्ल उदाहरण हैं.

  1. टेस्टिंग एपीआई के उदाहरणों के लिए, प्लेग्राउंड सहायता जोड़ना

मैंने डेमो सर्वर पर होस्ट किए गए OpenMRS के स्वैगर दस्तावेज़ में इस सुविधा का इस्तेमाल किया है. किसी भी एपीआई दस्तावेज़ में इसे शामिल करना वाकई में सुविधाजनक टूल है. मैंने यहां थोड़ी रिसर्च की और पाया कि मौजूदा स्टैटिक दस्तावेज़ में Swigger-UI खास जानकारी को एम्बेड करना ज़्यादा मुश्किल नहीं है. 'शो छिपाएं' टॉगल का इस्तेमाल करना और हमारे पास उपलब्ध स्वैगर दस्तावेज़ कोड का इस्तेमाल करना. इससे हम यह भी पक्का कर सकते हैं कि आज़माने की सुविधा, एपीआई के मौजूदा स्पेसिफ़िकेशन के मुताबिक लाइव है. इससे, हमें लगता है कि हम अपने मौजूदा स्टैटिक दस्तावेज़ में खेल के मैदान की सुविधाओं को इंटिग्रेट कर सकते हैं.

  1. अब तक किए गए काम को रीफ़ैक्टरिंग और बेहतर बनाना
कर्ल के मौजूदा उदाहरणों की जांच करना

इस साल इस प्रोजेक्ट की मुख्य बात यह सेक्शन ही है. फ़िलहाल, GitHub एपीआई दस्तावेज़ों पर सिर्फ़ कर्ल के उदाहरण मौजूद हैं. इनमें से कुछ को सीधे ब्राउज़र से जांचने के लिए, डेमो सर्वर पर नहीं चलाया जा सकता. मैं सभी मौजूदा एंडपॉइंट की जांच करूंगा/करूंगी और उन कर्ल अनुरोधों को चलाने पर मिलने वाले अलग-अलग कर्ल उदाहरणों के जवाबों के साथ एक सामान्य दस्तावेज़ को बनाए रखूंगा. अगर ज़रूरी हो, तो मैं इस टास्क को पूरा करने के लिए, स्वैगर दस्तावेज़ में पहले से मौजूद सुविधा को आज़माने की सुविधा के साथ पोस्टमैन का इस्तेमाल करूँगा.

कुछ उदाहरणों में एपीआई से मिले रिस्पॉन्स मौजूद नहीं हैं

मौजूदा कर्ल उदाहरणों के लिए कुछ रिस्पॉन्स जोड़े गए हैं, लेकिन कुछ कर्ल उदाहरणों में रिस्पॉन्स नहीं हैं. मुझे लगता है कि जवाब ज़्यादा शब्दों में न भी हों, लेकिन आम तौर पर रिसॉर्स को पूरी तरह मिटाने जैसे मामलों में, हमारे पास JSON एपीआई रिस्पॉन्स का एक उदाहरण होना चाहिए. हालांकि, हमने सभी संभावित रिस्पॉन्स कोड और उन्हें पाने की वजह का दस्तावेज़ तैयार कर लिया है. मुझे लगता है कि इससे एपीआई के सभी दस्तावेज़ों में दिए गए उदाहरण एक जैसे हो जाएंगे !!

अलग-अलग कार्रवाइयों के काम करने के उदाहरण मौजूद नहीं हैं

मुझे लगता है कि यह एपीआई दस्तावेज़ में पहले पूरे किए गए काम को रीफ़ैक्टर करने का सबसे अहम हिस्सा होगा. दस्तावेज़ में ऐसे ठोस उदाहरण हैं जिन्हें सीधे cURL के साथ लागू किया जा सकता है. हालांकि, उनमें से कुछ थोड़े बहुत ऐब्सट्रैक्ट हैं, जो अनुभवी डेवलपर का अच्छा रेफ़रंस देते हैं, लेकिन नए उपयोगकर्ताओं को परेशान नहीं करते. OpenMRS की इस पोस्ट से मुझे पता चला कि अच्छे उदाहरण कीमती होते हैं. इसलिए, काम के उदाहरण जोड़ने के अलावा, हम सिंटैक्स हाइलाइट करने को भी बढ़ावा दे सकते हैं. यह स्लेट का इस्तेमाल करके बनाया गया है, जो इसे करने में बहुत आसान है.

जैसा कि बर्के ने कई बार इस बात पर ज़ोर दिया है कि उन्होंने अच्छे यूआई और चमकदार इंटरफ़ेस के बजाय, दस्तावेज़ों में सादगी और जानकारी को प्राथमिकता दी है. मैं इन सिद्धांतों का पालन करूंगा. साथ ही, पहले से दस्तावेज़ किए गए एंडपॉइंट को जानकारी देने की कोशिश करूंगा. मैं उन डेवलपर से बात करता हूं जो फ़िलहाल OpenMRS Webservices API पर काम कर रहे हैं और समुदाय से जुड़ रहे हैं. ठीक वैसे ही, जैसा मैंने यहां मौजूद संसाधनों के लिए एट्रिब्यूट टाइप के लिए ब्यौरे इकट्ठा करने के लिए, टॉक पोस्ट में किया था. मैं चीज़ों पर सबसे पहले और ध्यान से काम करूंगी. अपने मेंटॉर से बात करना और यह तय करूंगी कि कौनसी चीज़ें दस्तावेज़ को बेहतर बनाती हैं और उन्हें पहले हासिल करना ज़रूरी है.

हेडलाइन के तौर पर इस्तेमाल के उदाहरण जोड़ना

मैंने कई एपीआई दस्तावेज़ों को सिर्फ़ समझने के लिए देखा है और पाया कि उन सभी में इस्तेमाल के उदाहरण साफ़ तौर पर हेडलाइन के रूप में हैं. हालांकि, हमें इस्तेमाल के उदाहरण साफ़ तौर पर नहीं दिखते हैं. उन्हें संसाधनों और सबरिसॉर्स की परिभाषाओं के मुताबिक इस्तेमाल के उदाहरणों और परिभाषाओं में शामिल किया गया है. मुझे लगता है कि हमें दस्तावेज़ में इस्तेमाल-केस को एक अलग इकाई के तौर पर अलग-अलग करना चाहिए, ताकि डेवलपर उन्हें सिर्फ़ उदाहरण समझ पाएं.

  1. गायब संसाधनों को ढूंढना और उनका दस्तावेज़ बनाना

    प्रोजेक्ट की मौजूदा स्थिति के बारे में यहां संसाधन दिए गए हैं. हालांकि, स्वैगर दस्तावेज़ का सबसे नया वर्शन यहां देखकर मुझे ऐसे कई संसाधन ढूंढने में मदद मिली जिन्हें GitHub पर इस्तेमाल किए जा सकने वाले एपीआई दस्तावेज़ों में मौजूद संसाधनों के मौजूदा सुइट में जोड़ा जा सकता था. साथ ही, Docs 2019 सीज़न के दौरान, अन्य संसाधनों के साथ किए गए ब्यौरे में भी यह जानकारी जोड़ी जा सकती थी. दस्तावेज़ में किन विषयों को शामिल करने की ज़रूरत है और उन्हें सही तरीके से जोड़ने के लिए, मैं चर्चा करूंगा.

निष्कर्ष

मैं कुछ समय से OpenMRS कम्यूनिटी का हिस्सा हूं. मैं उस Android क्लाइंट प्रोजेक्ट में योगदान देने वाला व्यक्ति हूं जिसके लिए सर्वर से इंटरैक्ट करने के लिए, एपीआई का अक्सर इस्तेमाल किया जाता है. इसलिए, मुझे लगता है कि मैं एपीआई दस्तावेज़ों को बेहतर बनाने के इस प्रोजेक्ट पर काम कर सकता/सकती हूं. डेवलपर के तौर पर अपने काम को देखकर, मैं यह पता लगा सकता/सकती हूं कि इससे दूसरे डेवलपर का काम आसान है या नहीं. मुझे यहां होस्ट किए गए, उपयोगकर्ता के लिए आसान दस्तावेज़ स्टोर करने की जगह के टूल के बारे में पता है. साथ ही, मैंने इस रेपो में कई योगदान दिए हैं, ताकि मैं डेटा स्टोर करने की जगह और टूल को बेहतर तरीके से समझ सकूं.

मैं हर हफ़्ते एक पोस्ट के ज़रिए अपनी प्रोग्रेस के बारे में बताऊंगी. इससे कम्यूनिटी से सुझाव लेने में मदद मिलेगी. साथ ही, मेरे मेंटॉर और कम्यूनिटी के साथ काम करके मुझे इस दस्तावेज़ की इस समयसीमा का ज़्यादा से ज़्यादा फ़ायदा मिलेगा.