2010-06-20 11 views
8

हाय मैं तकनीकी लोगों के लिए एक बहुआयामी कार्य आवेदन लिखना चाहता हूं। मैं जितना प्लेटफार्म कर सकता हूं उतना प्लेटफार्मों को संभालना चाहता हूं (वेब, खोल, डेस्कटॉप) और इसलिए मैंने सर्वर/एपीआई से शुरू करने का फैसला किया है।रूबी ढांचे में एक एपीआई लिखने के लिए?

मैं रूबी में यह लिखना चाहते हैं, लेकिन मुझे लगता है कि है कि रेल थोड़ा भी इस बात के लिए भारी है, भले ही यह काम करना होगा। सिनात्रा भी कार्य के लिए काफी उपयुक्त नहीं लगता है।

सभी सर्वर/एपीआई कर डाटाबेस प्रश्नों का सरल अनुरोध अनुवाद करने के लिए किया जाएगा होगा, और बाद के चरण कुछ प्रमाणीकरण और प्राधिकरण पर।

1) मैं एक REST API या एक सोप API का उपयोग करना चाहिए:

तो बुनियादी तौर पर मैं जानना चाहता हूँ?

2) क्या इसके लिए कोई ढांचा है? या निकटतम ढांचा उपलब्ध क्या है?

उत्तर

8

साहसी के लिए, वहाँ भी एक कम ज्ञात परियोजना grape कहा जाता है। यह एक रैक आधारित अनुप्रयोग है, सिनात्रा के समान, लेकिन केवल एपीआई लिखने का इरादा है। मुझे नहीं लगता कि यह अभी तक गंभीर परियोजनाओं में उपयोग करने के लिए पर्याप्त परिपक्व है, लेकिन यह अभी भी जानना दिलचस्प है।

5

1) बाकी, सोप एक भयानक प्रणाली है और रूबी में अपने समर्थन की काफी कमी है। दूसरी तरफ, आरईएसटी मूल रूप से रूबी डिफ़ॉल्ट है और उपयोग करने के लिए बहुत कम प्रयास करता है, खासकर अगर आप आरईएसटी/जेएसओएन का उपयोग कर रहे हैं।

2) सिनात्रा और रेल मूल रूप से आपके विकल्प हैं। यह नीचे आता है कि यह एप्लिकेशन कितना जटिल होगा। सिनात्रा शायद काम को ठीक से संभाल सकता है, लेकिन रेल आपके लिए ब्लोट के खर्च पर अधिकतर काम करता है। यदि आप डेटाबेस के लिए ActiveRecord का उपयोग करते हैं तो आप पहले से ही कुछ रेल ब्लाउट ले जायेंगे। जब प्रमाणीकरण और/या भूमिकाएं खेलती हैं, तो रेल दोनों के लिए परिपक्व समाधान होते हैं। किसी भी अतिरिक्त जानकारी के बिना, मैं रेल की तरफ झुकता हूं क्योंकि यह आपके लिए बहुत अधिक काम करता है और, जब सही तरीके से लिखा जाता है, तब भी काफी तेज़ हो सकता है।

+2

मैं लगभग किसी भी दिन दर्द से पीड़ित हूं। – thomasfedb

+0

एसओएपी सर्वर वास्तव में रूबी में अच्छी तरह से समर्थित नहीं हैं, हालांकि न तो यह कि न ही आपको सुरक्षा की परवाह नहीं है, एसओएपी को "भयानक प्रणाली" बनाती है; चाहे वह प्रासंगिक हो, आप जो भी बना रहे हैं उस पर निर्भर करता है। –

+0

@ थॉमसफेडब ब्लोट का मतलब कम दर्द का मतलब नहीं है .. – Pithikos

1

असल सोप बहुत बहुत AWS साथ लागू करने के लिए आसान है। उसी समय, आरईएसटी एपीआई भी लागू करना बहुत आसान है। मैंने रेल के साथ कुछ अलग और समांतर (JSON, XML और कस्टम प्रारूप) API लिखा है। मुझे यकीन है कि फ्रेमवर्क स्टैक प्रदर्शन आपकी बाधा नहीं होगी, इसलिए अभी तक प्रदर्शन के बारे में चिंता करने से परेशान न हों। आपकी पहली बाधा किसी भी तरह डेटाबेस होगी और फिर प्रति सेकंड अनुरोध करेगा।

सभी सब मैं रेल के साथ जा रहा सुझाव है, यह आप के लिए बाहर काट बहुत काम है।

+2

एडब्ल्यूएस के लिए आखिरी प्रतिबद्धता एक साल पहले खत्म हो गई थी, इसलिए मुझे बॉक्स से बाहर भरोसा करने में संकोच नहीं होगा। –

+0

मैंने इसे अपने आप में नहीं देखा है, लेकिन वहां शायद समान चीजें हैं, अगर यह अब रेल में भी नहीं बनाई गई है। –

+0

एडब्ल्यूएस रेलों में बनाया गया था, लेकिन आरईएसटी के आगमन के बाद, आग के साथ कोर की तरह मौत की मौत। मैं खराब तरीके से लागू रूबी SOAP मुद्दों से निपटने के अपने जीवन के कई हफ्तों खोने के बाद बस कड़वा हो सकता हूं। –

1

चूंकि यह पुराना धागा अभी भी संबंधित Google खोजों पर उच्च है, इसलिए मुझे Hoodoo के लिए मेरी अत्यधिक पक्षपातपूर्ण (सह-लेखक और उपयोगकर्ता) अनुशंसा में चिपका जाना चाहिए। अन्य पेशकशों के विपरीत, हुडू में API specification शामिल है जो कहता है कि एपीआई कॉल कैसे किए जाने चाहिए और उन्हें कैसे जवाब देना चाहिए; यह आपके डिजाइन में एक स्थिरता को लागू करता है जो ग्राहकों को कॉल करने की सराहना करता है। यदि आप एक एपीआई कॉल कर सकते हैं, तो आप उन्हें सभी कॉल कर सकते हैं। हुडू बहुत सारे बॉयलरप्लेट लागू करता है ताकि आप सार्थक सेवा कोड पर ध्यान केंद्रित कर सकें।

हम लॉयल्टी न्यूजीलैंड में दो साल से अधिक सफलतापूर्वक हुडू सेवाओं का उपयोग कर रहे हैं, जो देश का सबसे बड़ा वफादारी कार्यक्रम चलाते हैं। हमारा हुडू-आधारित माइक्रोस्राफ्ट प्लेटफार्म हमारे ग्राहक लेनदेन का 100% संभालता है।

नाकामयाबी 100% गैर तुच्छ rspec परीक्षण कवरेज और 100% rdoc प्रलेखन कवरेज है। जैसा कि आप उपरोक्त लिंक से देखेंगे, वहां बहुत कुछ है!

हुडू Rack application है, इसलिए किसी भी रैक संगत वेब सर्वर के साथ काम करता है। हमारी पसंदीदा तैनाती तंत्र हालांकि HTTP-over-AMQP bridge पर आधारित अनिश्चित काल तक क्षैतिज स्केलेबल व्यवस्था है और नोड्स का एएमक्यूपी क्लस्टर प्रत्येक सेवा के समान संग्रह को चलाता है, डॉकर कंटेनर के अंदर प्रबंधित होता है और फ्लीट के साथ तैनात होता है। कतार के माध्यम से सेवा नोड्स में सिस्टम स्व-लोड संतुलन और फ्रंट एंड HTTP-> एएमक्यूपी प्रोसेसर बनाम एएमक्यूपी प्रोसेसर बनाम रैक स्टैक में HTTP इनपुट नाटकीय रूप से सिस्टम की हमले की सतह को कम कर देता है। हमने नोड में फ्रंट एंड घटक लिखा और फ्रेमवर्क अवधारणा के अन्य हिस्सों के नोड कार्यान्वयन के साथ इसके बारे में अधिक जानकारी के लिए, Alchemy Framework देखें। कीमिया नोड सेवाएं और हुडू रूबी सेवाएं एक ही ग्रिड पर खुशी से मिल सकती हैं।

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