OpenMRS प्रोजेक्ट

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

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

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

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

मुख्य मकसद

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

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

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

खास जानकारी

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

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

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

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

पूरी जानकारी

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. छूटे हुए संसाधनों को ढूंढना और उनका दस्तावेज़ बनाना

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

निष्कर्ष

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

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