2012-04-11 20 views
5

मैं सेलफोर्स एसओएपी एपीआई का उपयोग करने वाले कंसोल ऐप का निर्माण कर रहा हूं, और अब एक वेब ऐप में सेल्सफोर्स एपीआई का उपयोग करने की आवश्यकता है।सेल्सफोर्स एसओएपी बनाम रीस्ट

क्या मुझे लगता है कि एसओएपी गैर वेब-आधारित ऐप के लिए बेहतर है, और आरईएसटी एक वेब ऐप के लिए बेहतर है?

यदि मैं एक रैपर बनाना चाहता हूं जिसका उपयोग स्थानीय ऐप्स से रिपोर्टिंग या हमारी वेबसाइटों से सेल्सफोर्स को पोस्ट करने में किया जाएगा, तो क्या मुझे ऐप के आधार पर आरईएसटी और एसओएपी एपीआई दोनों का पर्दाफाश करना चाहिए? या मैं सिर्फ एक का उपयोग करने के लिए चिपकना चाहिए? निर्णय लेने वाले कारक क्या हैं जिन्हें मुझे देखना चाहिए यदि मुझे सिर्फ एक को चुनना है?

उत्तर

10

अन्य उत्तर कुछ अच्छी सामान्य जानकारी, को ध्यान में रखना कर रहे हैं

1) आप सोप API में सीधे बल्क अपडेट डेटा, लेकिन आप Async थोक एपीआई का उपयोग करने की आवश्यकता होगी कर सकते हैं कुछ Salesforce विशिष्ट बातें शामिल आरईएसटी से ऐसा करने के लिए।

2) साबुन एपीआई कुछ चीजें बाकी एपीआई में उपलब्ध नहीं होता है, सबसे विशेष रूप से describeLayout, queryAll, & getUpdated

3 getDeleted) REST API कुछ चीजें सहित सोप ​​API, में उपलब्ध नहीं होता है चाप के लिए एपीआई, और हाल ही में एक्सेस की गई रिकॉर्ड्स सूचियों तक पहुंच।

4) आरईएसटी एपीआई बेस 64 एन्कोडिंग/डिकोडिंग के ओवरहेड के बिना बाइनरी डेटा (फाइलें, अनुलग्नक, सामग्री इत्यादि) तक पहुंच सकता है।

तो, इस पर निर्भर करता है कि आपका ऐप क्या करने की कोशिश कर रहा है, यह आपको एक तरफ या दूसरे को धक्का दे सकता है।

+0

बिंदु # 2 पर, यह अब सत्य नहीं है कि REST API में उन अंतराल बिंदु नहीं हैं। उदा।, आप हटा सकते हैं: http://www.salesforce.com/us/developer/docs/api_rest/Content/dome_get_deleted.htm – joshdick

3

मेरा मानना ​​है कि यह व्यक्तिगत प्राथमिकता होने पर समाप्त होता है यदि आप इसे .NET एप्लिकेशन द्वारा उपभोग कर रहे हैं, भले ही यह एक वेब ऐप है या नहीं।

व्यक्तिगत रूप से, मैं एसओएपी के साथ जाऊंगा क्योंकि .NET के पास एसओएपी सेवा का उपभोग करने के लिए कार्यक्षमता में बहुत कुछ बनाया गया है, यह आपके लिए सभी विधि प्रोटोटाइप बनाता है और आपके द्वारा आरईएसटी अनुरोधों को स्वयं हस्तक्षेप करने से विकास को तेज़ कर देगा। .NET एसओएपी के मार्शलिंग का ख्याल रखेगा।

एक आवरण के निर्माण के लिए के रूप में, आप पर विचार करने के अपने लक्षित दर्शकों, अगर आपके लक्षित दर्शकों के अन्य .NET अनुप्रयोग डेवलपर्स, उसके बाद आप अपने WCF सेवा उजागर एक सभ्य विकल्प हो सकता है है, WCF भी अंतिम बिंदु या तो साबुन के लिए है है या आरईएसटी।

1

बाकी या सोप जब दोनों उपलब्ध हैं उपयोग करने के लिए निर्णय आमतौर से संबंधित है:

  1. उपकरण और भाषा आप अपने आवेदन के लिए उपयोग कर रहे हैं
  2. या तो शैली
  3. प्रदर्शन के साथ आपका परिचित आपके आवेदन की ज़रूरतें (जेएसओएन पेलोड्स एक्सएमएल पेलोड से छोटे हैं)

यदि 'स्थानीय' ऐप्स सर्वर की तरफ से सेवाओं को कॉल कर रहे हैं, तो बाकी सब बराबर हो, यो आप कम से कम डब्लूएसडीएल से सी # कोड उत्पन्न कर सकते हैं और यह एसओएपी एपीआई सरल (कोई हाथ कोडिंग) का उपयोग नहीं करता है।

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

यदि एपीआई का वेब ऐप उपयोग सर्वर (क्लाइंट नहीं) पर है, तो निश्चित रूप से केवल एक ही एपीआई को लक्षित करें। डब्ल्यूएसडीएल अगर आप इसे कॉल करने के लिए कोड को स्वतः उत्पन्न करना चाहते हैं, तो अन्यथा सादगी और दक्षता के लिए आरईएसटी।

1

आईएमओ, एसओएपी एक मानक प्रकार मैसेजिंग आर्किटेक्ट, आईई के रूप में बनाया गया मानक था। संदेश पास करते समय बस इस "अनुबंध" का उपयोग करें। यह सामान्य था कि यह किसी विशेष तकनीक को गले लगाता नहीं है।

आरईएसटी एक वास्तविक पद्धति है जो HTTP को गले लगाती है, यह जीईटी, पोस्ट, पुट का उपयोग करने और इसकी अधिकतम क्षमता को हटाने का एक तरीका है।

मुझे लगता है कि कोई दूसरा बेहतर नहीं होगा, यह वास्तव में नौकरी के लिए सही उपकरण का उपयोग करने के लिए उबलता है। मैं वेब-आधारित ऐप और गैर-वेब-आधारित के बीच अंतर नहीं बनाऊंगा। क्योंकि एसओएपी या आरईएसटी दोनों के लिए फायदेमंद हो सकता है।

यहां कुछ प्रश्न हैं जिन्हें मैं पहले उत्तर दूंगा:
1) मेरा लक्षित ग्राहक कौन है। माइक्रोसॉफ्ट वर्कशॉप क्लाइंट, जावा, पीएचपी टाइप।
2) किस तरह के (एक बेहतर शब्द की कमी।) "एंडपॉइंट्स" क्या मैं अपने एपीआई को बेनकाब करना चाहता हूं। (जेएसओएन, एक्सएमएल, अजाक्स, पीओएक्स या उपर्युक्त सभी।)
3) मेरे ग्राहक इस एपीआई के साथ क्या चलेंगे? क्या उनके पास पहले से ही ऐसे ग्राहक हैं जो SOAP पर आधारित हैं। यदि हां, तो एसओएपी जाने का रास्ता है।
4) आरईएसटी आपको अपने यूआरएल डिज़ाइन के बारे में सोचने देगा और इस प्रकार क्लाइंट को डेटा को "मैशप" करने की इजाजत देता है जो उन्हें चाहिए। तो अगर आपको लगता है कि ऐसा कुछ है जो आप चाहते हैं। आरईएसटी जाने का रास्ता है।
5) आरईएसटी HTTP में "जीईटी" का उपयोग करता है, यह क्लाइंट को परिणामों को कैश करने की अनुमति देता है। "सशर्त जीईटी जिसे वह कहा जाता है। यह उन्हें एक बड़ी वस्तु को कैश करने की अनुमति देता है, सर्वर को केवल एक हेडर (छोटे) के माध्यम से पूछें यदि आखिरी अपडेट कैश किया गया है, तो ऐसा होता है। पूर्ण वस्तु से परेशान न करें, क्या करें कैश किया गया नवीनतम संस्करण है। यह एसओएपी में किया जा सकता है, लेकिन बॉक्स के बाहर, आरईएसटी इसके लिए बेहतर है।

वैसे भी, उम्मीद है कि आपको बेहतर डेटा मिल जाएगा, ताकि आप बेहतर निर्णय ले सकें। और यदि बाकी सब कुछ विफल हो जाता है आप केवल दोनों ही कर सकते हैं। लेकिन फिर आपको दो प्रकार की सेवाओं (विभिन्न पद्धतियों) और दोनों के लिए एक कोडबेस प्राप्त करने का प्रयास करना होगा। (मुश्किल हो सकता है, लेकिन मुश्किल नहीं है।)

व्यक्तिगत रूप से। मैं एक चुनता हूं, फिर यदि आपको कभी दूसरे की ज़रूरत है, तो उस पुल को जलाएं और इसके लिए तकनीकी ऋण का भुगतान करें।

2

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

इसके अतिरिक्त, चूंकि आपके पास मौजूदा कंसोल ऐप्स हैं जिन्हें किसी भी समय संचार मिश्रण में लाया जा सकता है, तो यह अच्छा हो सकता है कि WCF लचीलापन परिवहन अज्ञेयवादी हो और HTTP से बंधे न हों क्योंकि आप आरईएसटी के साथ होंगे।

तो मुझे सच में नहीं लगता कि आप आरईएसटी फायदे का लाभ उठाने या एसओएपी की कमियों से प्रभावित होने की स्थिति में हैं, इसलिए यह आपके मानक उपकरण में सबसे अच्छा फिट करने वाला भारी मानकीकृत विकल्प के साथ जाने का एहसास है सेट।

0

इस पार्टी के लिए देर हो चुकी है, लेकिन सिर्फ एक संक्षिप्त संदेश:

Salesforce एपीआई पूरी तरह से RESTful नहीं है: मैं यह बाकी-ish कहेंगे। इसके कुछ आरईएसटी इंटरफेस के लिए यूआरएल में एसक्यूएल जैसी प्रश्न हैं, इस तरह की चीज।

0

SOAP API:

इसके लिए क्या है? SOAP का उपयोग करके अन्य अनुप्रयोगों के साथ अपने संगठन के डेटा को एकीकृत करना।

इसका उपयोग कब करें? आपके पास पूर्व-मौजूदा मिडलवेयर सेवाएं हैं जिन्हें डब्लूएसडीएल और एक्सएमएल डेटा के साथ काम करने की आवश्यकता है।

प्रोटोकॉल सोप/डबल्यूएसडीएल डाटा प्रारूप एक्सएमएल संचार तुल्यकालिक

REST API:

यह किसलिए है? आरईएसटी का उपयोग कर अपने संगठन में ऑब्जेक्ट एक्सेस करना। इसका उपयोग कब करें? आप अपने संगठन के साथ एकीकृत करने के लिए आरईएसटी आर्किटेक्चर का लाभ उठाना चाहते हैं। कोई डब्ल्यूएसडीएल आवश्यकता नहीं है। ब्राउज़र-आधारित अनुप्रयोगों, मोबाइल ऐप्स और अत्यधिक-इंटरैक्टिव सामाजिक अनुप्रयोगों के लिए उपयुक्त है। प्रोटोकॉल REST डेटा प्रारूप JSON, XML संचार सिंक्रोनस

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