2016-12-05 48 views
6

मैंने swagger codegen कोड जेनरेटर का उपयोग कर टाइपस्क्रिप्ट 2/कोणीय 2 भाषा का उपयोग करके अपना क्लाइंट जेनरेट किया है।स्वैगर टाइपस्क्रिप्ट/कोणीय 2 क्लाइंट

मैं यह समझने में सक्षम नहीं हूं कि क्या उत्पन्न हुआ है और कलाकृतियों का उपयोग कैसे किया जाए।

जहाँ तक मैं पता लगाने में सक्षम हूं, शीर्षलेख create विधि (user और passwd पैरामीटर) में अनुरोध पर शामिल नहीं हैं। अन्यथा, मुझे समझ में नहीं आता कि अनुरोध कैसे किए जाते हैं। मैंने map विधि कॉलबैक के अंदर ब्रेकपॉइंट सेट किया है और यह कभी नहीं पहुंचा है।

आप UsersApi.ts पर एक नज़र डाल सकते हैं।

+3

फ़र, 2017 के रूप में, के रूप में सबसे अच्छा के रूप में मैं बता सकता हूँ, कोई भी किसी भी काम किया है कैसे generat उपयोग करने के लिए दस्तावेज़ के लिए एड कोणीय 2 ग्राहक। स्वैगर-कोडेजन दस्तावेज कहता है कि आपको डाउनलोड क्लाइंट के साथ शामिल README का संदर्भ लेना चाहिए। कोई रीडमे फ़ाइल नहीं है, इसलिए मुझे लगता है कि यह दस्तावेज लिखने के लिए कोई भी साधारण मामला नहीं है (हार्दिक रूप से विडंबनापूर्ण, विषय पर विचार करना - सॉफ्टवेयर जो स्वचालित दस्तावेज में मदद करता है, में कोई दस्तावेज नहीं है)। – pspahn

+0

यदि आप swagger 2.2.2 का उपयोग कर रहे थे तो यह खराब हो गया था, नया 2.2.3 संस्करण जेनरेट कोड को काफी बदल देता है। मैं इसे जारी रखने से पहले कोशिश करता हूं, हालांकि शायद आपके पास अब तक है। – PeterS

उत्तर

0

मैं अपने वर्तमान प्रोजेक्ट में एक स्वैगर कोडजन जेनरेट क्लाइंट (टाइपस्क्रिप्ट/एनजी 2) का उपयोग कर रहा हूं।

सबसे पहले मैं जेनरेट आउटपुट लेता हूं और इसे अपने प्रोजेक्ट में रखता हूं। आप इसे स्वचालित कर सकते हैं या नहीं। इस पर निर्भर करता है कि आपके एपीआई को कितना बदलने की उम्मीद है। मैंने अपना 'ऐप/कोर/एपीआई' रखा है और इसमें एपीआई फ़ोल्डर और मॉडल फ़ोल्डर और आधा दर्जन या अन्य फाइलें शामिल हैं। और एक। swagger-codegen फ़ोल्डर भी (हालांकि मुझे 100% यकीन नहीं है कि यह आवश्यक है)।

  1. जेनरेट एपीआई के उपयोग को लपेटने के लिए एक सेवा बनाएं, इस प्रकार से अपने घटकों को डीकॉप्लिंग करें (यदि यह बदलता है)। तो आपके उदाहरण के लिए मैं अपने घटकों द्वारा उपभोग करने के लिए अपना खुद का user.service.ts बनाउंगा।
  2. आपके उपयोगकर्ता सेवा कक्षा में आपको जेनरेट कोड से सार्वजनिक एपीआई आयात करने की आवश्यकता है। यह आमतौर पर एपीआई/इंडेक्स.ट्स में होता है या बस: आयात * क्लाइंट के रूप में 'ऐप/कोर/एपीआई' से; यह तब आसान होता है जब आपके पास केवल एक ही एपीआई होता है। यदि आपके पास एकाधिक हैं तो उन्हें api/api.ts/
  3. से एपीआईएस नामक एक सरणी के रूप में निर्यात किया जाता है। एपीआई का उपयोग करने के लिए आपको हेडर या पैरा या उनमें से कोई भी बनाने की आवश्यकता नहीं है। जेनरेट की गई सेवा में विधियां हैं जिन्हें कॉल की ज़रूरतों को लेना चाहिए और यह जेसन अनुरोध और प्रतिक्रिया ऑब्जेक्ट्स को संभालने में संभालता है। मॉडल फ़ोल्डर और सेवा ts के माध्यम से देखकर इसे थोड़ा स्पष्ट बनाना चाहिए। लेकिन आपके उदाहरण के लिए आपके पास केवल 2 विधियां हैं। बनाओ और मौजूद है। आपके उपयोगकर्ता सेवा में आप CreateUser नामक एक विधि बनाते हैं या जो भी आप पसंद करते हैं और इसके अंदर आप एपीआई विधि बनाते हैं। इसे उपयोगकर्ता नाम स्ट्रिंग और पासवर्ड स्ट्रिंग पास करें। बस इतना ही। यह जो कुछ भी एपीआई कॉल रिटर्न देता है (यह एक टाइपस्क्रिप्ट ऑब्जेक्ट (एपीआई जेनरेट कोड में मॉडल निर्देशिका में परिभाषित) में जेसन प्रतिक्रिया को परिवर्तित करता है।
  4. आपके उदाहरण के लिए यह कस्टम ऑब्जेक्ट्स का उपयोग नहीं कर रहा है । विधि विधि केवल अवलोकन योग्य < {}> देता है। इसलिए आप इसे कॉल कर सकते हैं और अपने स्वयं के उपयोगकर्ता वर्ग के उदाहरण को प्रतिक्रिया दे सकते हैं और अपने दृश्य टेम्पलेट से जुड़ने के लिए इसका उपयोग कर सकते हैं। फिर एपीआई विवरण से डीकॉप्लेड रहना।

आशा इस मदद करता है। मैं और अधिक विशिष्ट सवालों के जवाब देने में खुशी होगी।

संबंधित मुद्दे