मैं स्क्रैच से वेब ऐप्स का एक समूह बनाने वाला हूं। (देख ओवरव्यू के लिए http://50pop.com/code ।) मैं उनके लिए कई अलग-अलग क्लाइंट्स से एक्सेस होने में सक्षम होना चाहूंगा: फ्रंट-एंड वेबसाइट्स, स्मार्टफोन ऐप्स, बैकएंड वेबसर्विसेज इत्यादि। हर एक के लिए JSON रीस्ट एपीआई।
इसके अलावा, मैं बैक-एंड पर काम करना पसंद करता हूं, इसलिए मैं अपना दिन विशुद्ध रूप से एपीआई पर अपना ध्यान केंद्रित रखने और किसी दूसरे को काम पर रखने के लिए लगाता हूं, चाहे वह वेबसाइट हो, आईफोन, एंड्रॉइड या अन्य ऐप।
कृपया मुझे यह तय करने में मदद करें कि मुझे कौन सा दृष्टिकोण लेना चाहिए:
नाखूनों में चोट
एक बहुत ही मानक रेल वेब-ऐप बनाएं। नियंत्रक में, JSON या HTML की सेवा करने के लिए response_with स्विच करें। JSON की प्रतिक्रिया तब मेरा API है।
समर्थक: बहुत मिसाल। महान मानकों और इस तरह से काम करने के कई उदाहरण हैं।
कोन: जरूरी नहीं कि API वेब ऐप की तरह ही हो। पसंद नहीं है अगर / फिर response_with स्विच दृष्टिकोण। दो बहुत अलग चीजों को मिलाकर (UI + API)।
रेस्ट सर्वर्स + जावासिपेट-हेवी क्लिंट
JSON- केवल REST API सर्वर बनाएं। ब्राउज़र में टेम्प्लेट प्रदर्शित करते हुए सीधे एपीआई तक पहुंचने के लिए क्लाइंट-साइड जावास्क्रिप्ट के लिए बैकबोन या एम्बर.जेएस का उपयोग करें।
प्रो: मुझे एपीआई और क्लाइंट के अलगाव से प्यार है। स्मार्ट लोग कहते हैं कि यह रास्ता है। सिद्धांत रूप में महान। अत्याधुनिक और रोमांचक लगता है।
Con: बहुत अधिक मिसाल नहीं। इसके कई उदाहरणों ने अच्छा नहीं किया। सार्वजनिक उदाहरण (twitter.com) सुस्त महसूस करते हैं और यहां तक कि इस दृष्टिकोण से दूर जा रहे हैं।
अन्य सर्वर + SERVER-SIDE HTML ग्राहक
JSON- केवल REST API सर्वर बनाएं। एक मूल HTML वेबसाइट क्लाइंट बनाएं, जो केवल REST API को एक्सेस करता है। कम क्लाइंट-साइड जावास्क्रिप्ट।
प्रो: मुझे एपीआई और क्लाइंट के अलगाव से प्यार है। लेकिन सादे HTML5 परोसना काफी मूर्खतापूर्ण है और क्लाइंट-सघन नहीं है।
Con: बहुत अधिक मिसाल नहीं। इसके कई उदाहरणों ने अच्छा नहीं किया। चौखटे भी इस का समर्थन नहीं करते। सुनिश्चित नहीं है कि यह कैसे संपर्क करे।
विशेष रूप से अनुभव से सलाह लेने के लिए, न केवल सिद्धांत में।