2017-01-24 18 views
7

में बैकएंड एपीआई यूआरएल के रनटाइम कॉन्फ़िगरेशन के लिए अनुशंसाएं यह मुझे थोड़ी देर के लिए परेशान कर रही है और ऐसा लगता है कि हर दूसरे सप्ताह, मैं पेशेवरों और विपक्ष के एक अलग सेट के साथ आता हूं।कोणीय 2 अनुप्रयोग

इसका सारांश यह है कि एक अच्छा एसपीए 2 अलग-अलग हिस्सों में विभाजित होता है। फ्रंट एंड एंड बैक एंड। फ्रंट एंड केवल स्थिर फाइलों (जावास्क्रिप्ट, सीएसएस, एचटीएमएल, इत्यादि) के बारे में होना चाहिए जबकि बैक-एंड वास्तविक डेटा परोसता है और गतिशील होता है। हालांकि, एक टुकड़ा जिसे मैं हमेशा फ्रंट-एंड के साथ गतिशील करना चाहता हूं वह बैक एंड यूआरएल है।

मेरा मतलब यह है कि मैं आमतौर पर अपने ऐप की सेवा करता हूं, मान लें कि http://server:123/ और http://other:456/api से मेरा एपीआई कहें। अक्सर, other और server समान हैं और बंदरगाह बदलते हैं, लेकिन जैसा कि हम स्केल करते हैं, यह हमेशा ऐसा नहीं होता है।

तो, मेरा प्रश्न है: एंगुलर 2 एप्लिकेशन में कॉन्फ़िगरेशन डेटा प्रदान करने के लिए सर्वोत्तम प्रथाएं क्या हैं?

प्रॉक्सी

अधिकांश वेब सर्वर, यहां तक ​​कि ज्यादातर स्थिर सामग्री उन्मुख लोगों, प्रॉक्सी कॉन्फ़िगरेशन के कुछ प्रकार की पेशकश (nginx, कोणीय-CLI:

यहाँ मैं क्या पहले से ही के बारे में सोचा है सेवा, आदि)। प्रॉक्सी के साथ समस्या यह है कि अनुरोध डबल-हॉप करता है। इसे पहले स्थिर सर्वर पर भेजा जाना चाहिए और फिर उस सर्वर को घूमना चाहिए और असली अनुरोध करना चाहिए। मैं इस वास्तुकला का प्रशंसक नहीं हूं, हालांकि मैंने इसे अन्य अनुप्रयोगों पर अतीत में उपयोग किया था।

विन्यास फाइल

यह वर्तमान में मेरे पसंदीदा है। मैं अपने स्थिर-सामग्री सर्वर से एक स्थिर फ़ाइल (चलिए /config.json) कहता हूं जिसमें एक या अधिक यूआरएल या अन्य गैर-संवेदनशील जानकारी होती है। मुझे यह दृष्टिकोण पसंद है क्योंकि यह आपको प्रॉक्सी, या का उपयोग करने की अनुमति देता है। यह आप पर निर्भर करता है। अधिकांश समय, यूआरएल के आधार पर एक स्थिर फ़ाइल लौटने के लिए अपने वेब सर्वर को कॉन्फ़िगर करना बहुत आसान है (मान लें /config)।

कोड विन्यास

यह मेरी कम से कम पसंदीदा है। इस दृष्टिकोण में, कॉन्फ़िगरेशन सीधे कोड फ़ाइल (config.ts उदाहरण के लिए) में लिखा गया है और प्रत्येक वातावरण के लिए बदला जाना है। मैं कोड और कॉन्फ़िगरेशन को 2 अलग-अलग कार्यों के रूप में मानता हूं और अधिकांश कंपनी में मैंने काम किया है, उन्हें 2 अलग-अलग टीमों द्वारा नियंत्रित किया जाता है। यह आपके कोड को फिर से कंपाइल करना होगा और अपने बैक-एंड यूआरएल को बदलने के लिए पुनः नियोजित करना होगा।

+0

मुझे अभी एक ही दुविधा का सामना करना पड़ रहा है - एक सीआई सर्वर का उपयोग स्टेजिंग/उत्पादन में तैनात करने के लिए। आपने अपनी समस्या को हल करने का अंत कैसे किया? – RVandersteen

+0

@RVandersteen, मैं विन्यास फाइल के साथ चला गया। हम अपने विभिन्न वातावरण (तैनात क्यूए, स्टेजिंग इत्यादि) पर तैनात करने के लिए हमारे डेटा और 'शेफ' की सेवा के लिए 'nginx' का उपयोग करते हैं)। इसने एपीआई यूआरएल को बदलना आसान बना दिया। –

+0

धन्यवाद - तो आपके पास एक स्थिर config.json फ़ाइल है और फिर एक कोणीय 2 सेवा है जो इसे लाती है और मान मानती है कि मैं मानता हूं। क्या आप इसे बूटस्ट्रैप पर करते हैं या जब – RVandersteen

उत्तर

0

मैंने कॉन्फ़िगरेशन फ़ाइलों का उपयोग किया लेकिन DevOps टूल द्वारा पर्यावरण चर सेट करना पसंद करते हैं।

कंटेनरों के साथ, सरल विन्यास के लिए, मैं पर्यावरण चर का उपयोग करता हूं। अन्यथा मैं बैक-एंड कॉन्फ़िगरेशन स्टोर की कॉन्फ़िगरेशन पास करता हूं, जैसे रेडिस या अब एक दिन क्यूब राज (उपयोग करने में आसान)।