के तपाइँ तपाइँको एपलाई Facebook मा लिङ्क गर्न चाहानुहुन्छ ताकि यसले स्वचालित रूपमा पोष्टहरू उत्पन्न गर्न सक्छ, वा Instagram मा ताकि तपाइँ निश्चित ह्यासट्यागहरूसँग फोटोहरू पुन: पोस्ट गर्न सक्नुहुन्छ?
तपाइँ तपाइँको वेबसाइटमा YouTube भिडियोहरू समावेश गर्न चाहानुहुन्छ। अनुप्रयोग प्रोग्रामिङ इन्टरफेसहरूले तपाईंलाई यी सबै कार्यहरू र थप (एपीआईहरू) गर्न अनुमति दिन्छ।
इन्स्टाग्राम एपीआई, फेसबुक एपीआई, र युट्युब एपीआई जस्ता एपीआईहरूलाई विभिन्न एप्लिकेसनहरूले सुरक्षित र मानकीकृत तरिकाले एकअर्कासँग "बोल्न" सक्छन्।
अर्को शब्दमा, प्रोग्रामले सफ्टवेयरको अर्को टुक्राबाट सुविधाहरू वा डेटा लिन सक्छ र तिनीहरूलाई आफ्नै सुविधाहरू वा प्रयोगकर्ता अनुभव सुधार गर्न प्रयोग गर्न सक्छ। तर कसरी अनुप्रयोगहरूले यी अनुरोधहरू गर्न सक्छन्, तिनीहरूलाई प्रक्रिया गर्न सक्छन्, र तिनीहरूलाई अरूले बुझ्न सक्ने तरिकामा प्रतिक्रिया दिन सक्छन्?
त्यो API कसरी सिर्जना गरियो मा निर्भर गर्दछ। API (एप्लिकेशन प्रोग्रामिङ इन्टरफेस) डिजाइनहरू छलफल गर्दा, यो SOAP बनाम REST तुलना गर्न सामान्य छ, दुई सबैभन्दा प्रमुख API paradigms।
Oracle, Sun, र PayPal जस्ता फर्महरूका लागि SOAP APIs (Simple Object Access Protocol) सुनको मापदण्ड बन्ने बित्तिकै, Google, Amazon, र eBay बाट REST APIs तर्फ एक वर्ष वा सोभन्दा पछि बराबर र विपरीत प्रतिक्रिया आयो।
यस पोस्टमा, हामी SOAP API हरू REST API सँग तुलना गर्नेछौं ताकि तपाईं आफ्नो उद्देश्यका लागि कुन उत्तम हो भनेर निर्णय गर्न सक्नुहुन्छ।
हामी API परिभाषित गरेर सुरु गर्नेछौं।
API भनेको के हो?
एप्लिकेसन प्रोग्रामिङ इन्टरफेसलाई API भनिन्छ। API हरू अनिवार्य रूपमा विधिहरू र प्रकार्यहरूको संग्रह हो जसले अनुप्रयोगहरूको विकासलाई सक्षम पार्छ। तिनीहरूले विभिन्न कार्यक्रमहरू, सेवाहरू, वा अपरेटिङ सिस्टमहरूको जानकारी र कार्यहरूमा पहुँच पाउँछन्।
तिनीहरू विभिन्न सफ्टवेयर प्रणालीहरू बीच बिचौलियाको रूपमा सेवा गर्छन्। तिनीहरूले दुई असंबद्ध कार्यक्रमहरू बीच "बोल्नु" सक्षम पार्छ।
व्यापार र वित्तीय बजारमा सक्रिय रूपमा संलग्न रहेको स्टक ब्रोकरको उदाहरण लिऔं। स्वचालित को एक संग्रह ट्रेडिंग एल्गोरिदम एपीआई मार्फत व्यापारीको मनपर्ने ट्रेडिंग ब्रोकर प्लेटफर्ममा जडान गर्न सकिन्छ। यसले तपाईंलाई, व्यापारीलाई इलेक्ट्रोनिक लेनदेनहरू कार्यान्वयन गर्न वा वास्तविक-समय कोटेशनहरू र मूल्य निर्धारण डेटा हेर्न सक्षम बनाउँछ।
REST भनेको के हो?
साँचो "वेब सेवाहरू" API मा REST (प्रतिनिधित्व राज्य स्थानान्तरण) समावेश छ। REST API हरू URIs (Uniform Resource Identifiers, जसमध्ये URL एक विशेष प्रकारको हो), HTTP प्रोटोकल, र अविश्वसनीय रूपमा ब्राउजर-कम्प्याटिबल JSON डेटा ढाँचामा बनाइन्छ।
SOAP प्रोटोकल, हामीले पहिले नै भनेका छौं, सम्भवतः पनि प्रयोग गर्न सकिन्छ। REST API हरू सिर्जना गर्न र बढ्न सजिलो हुन सक्छ, तर तिनीहरू ठूला र कठिन पनि हुन सक्छन् — यो सबै तिनीहरू कसरी सिर्जना गरिन्छन्, विस्तार गरिन्छ र तिनीहरू के गर्न चाहन्छन् भन्ने कुरामा निर्भर गर्दछ।
संसाधन अवरोधहरू, कम सुरक्षा आवश्यकताहरू, ब्राउजर ग्राहक अनुकूलता, खोज योग्यता, डेटा स्वास्थ्य, र स्केलेबिलिटी केही कारणहरू हुन् जुन तपाईंले एपीआई विकास गर्न चाहनुहुन्छ RESTful — चीजहरू जुन वास्तवमा वेब सेवाहरूमा लागू हुन्छ।
REST ले थप हल्का विकल्प प्रदान गर्दछ। SOAP प्रयोग गर्न गाह्रो थियो र धेरै विकासकर्ताहरूलाई बोझ थियो। उदाहरणका लागि, जाभास्क्रिप्टको साथ SOAP प्रयोग गर्दा साधारण कार्यहरू पूरा गर्न धेरै कोड लेख्न आवश्यक छ किनकि आवश्यक XML संरचना प्रत्येक पटक सिर्जना गर्नुपर्छ।
REST (सामान्यतया) XML अनुरोधको स्थानमा सीधा URL प्रयोग गर्दछ। यद्यपि त्यहाँ दुर्लभ परिस्थितिहरू छन् जब तपाईंले थप विवरणहरू प्रस्ताव गर्नुपर्छ, RESTful वेब सेवाहरूको बहुमत URL प्रविधि मात्र प्रयोग गर्दछ।
चार HTTP 1.1 क्रियाहरू GET, POST, PUT, र DELETE कार्यहरू सञ्चालन गर्न REST द्वारा प्रयोग गर्न सकिन्छ। SOAP को विपरीत, REST लाई XML मा हुनको लागि जवाफ आवश्यक पर्दैन।
REST-आधारित वेब सेवाहरू जसले कमाण्ड सेपरेटेड भ्यालु (CSV), JavaScript Object Notation (JSON), र Really Simple Syndication (RSS) ढाँचाहरू (RSS) मा डेटा आउटपुट गर्दछ।
उद्देश्य यो हो कि तपाईले तपाईको अनुप्रयोगको लागि प्रयोग गरिरहनु भएको भाषा भित्र तपाईलाई सजिलो पार्स ढाँचामा आवश्यक परिणामहरू प्राप्त गर्न सक्नुहुन्छ।
विशेषताहरु
- REST ले HTTP प्रोटोकलहरूको कारण, सबै भन्दा माथि सादगीलाई जोड दिन्छ।
- REST को लागि वेब सबैभन्दा उपयुक्त छ। यो ब्राउजरहरूसँग उपयुक्त छ किनभने JSON डेटा ढाँचाको रूपमा प्रयोग गरिन्छ।
- REST यसको उत्कृष्ट स्केलेबिलिटी र गतिको लागि प्रसिद्ध छ।
- क्लाइन्ट-सर्भर जडानहरू र आर्किटेक्चरहरू REST API हरू द्वारा थप पहुँचयोग्य बनाइन्छ। यदि यो RESTful छ भने, यो क्लाइन्ट-सर्भर मोडेल प्रयोग गरेर निर्माण गरिएको छ, डेटा पेलोडहरू पास गर्ने दुई पक्षहरू बीच राउन्ड ट्रिपहरू सहित।
- REST API ले एकान्त मानक इन्टरफेस प्रयोग गर्दछ। सबै एपहरू समान रूपमा र एउटै गेटवे मार्फत जडान हुन्छन् भन्ने सुनिश्चित गर्दै, एपीआईसँग कसरी एप्लिकेसनहरू सञ्चार गर्छन् भन्ने कुरालाई सुव्यवस्थित बनाउँछ।
SOAP भनेको के हो?
यसको आफ्नै प्रोटोकल, SOAP (Simple Object Access Protocol) भनिन्छ, REST भन्दा अलि बढी जटिल छ किनकि यसले सुरक्षा र सन्देश डेलिभरी लगायतका थप मापदण्डहरू निर्दिष्ट गर्दछ।
यी अन्तर्निहित मानदण्डहरू थोरै अतिरिक्त ओभरहेडको साथ आउँछन्। यद्यपि, तिनीहरू व्यवसायहरूको लागि निर्णायक कारक हुन सक्छन् जसलाई थप व्यापक सुरक्षा, लेनदेन, र ACID (Atomicity, Consistency, Isolation, Durability) अनुपालन क्षमताहरू चाहिन्छ।
यस तुलनाको खातिर, यो नोट गर्न महत्त्वपूर्ण छ कि SOAP का धेरै फाइदाहरू प्राय: वेब सेवा अनुप्रयोगहरूमा लागू हुँदैनन्, तिनीहरूलाई उद्यम-प्रकारको परिदृश्यहरूको लागि थप उपयुक्त बनाउँदै।
सुरक्षाको उच्च डिग्री (जस्तै जब a मोबाइल अनुप्रयोग बैंकसँग अन्तर्क्रिया गर्दछ), सन्देश पठाउने एपहरू जसलाई भरपर्दो सञ्चार आवश्यक पर्दछ, लिगेसी प्रणालीहरूसँग अन्तर्क्रिया, वा ACID अनुपालन तपाईंले SOAP API प्रयोग गरी एउटा अनुप्रयोग डिजाइन गर्न चाहनुहुने केही कारणहरू हुन्।
SOAP द्वारा प्रस्तावित सन्देश क्षमताहरू पूर्ण रूपमा XML मा आधारित छन्। डिस्ट्रिब्युटेड कम्पोनेन्ट अब्जेक्ट मोडेल (DCOM) र Common Object Request Broker Architecture जस्ता पुराना इन्टरनेट-असंगत प्रविधिहरू SOAP द्वारा प्रतिस्थापन गरिएको थियो जब यो पहिलो पटक Microsoft (CORBA) द्वारा सिर्जना गरिएको थियो।
बाइनरी संचारमा निर्भरताले यी प्रणालीहरूलाई असफल बनाउँछ। इन्टरनेटमा, SOAP प्रकार्यहरू द्वारा प्रयोग गरिएको जस्तै XML सन्देश।
विशेषताहरु
- SOAP को सुरक्षा उल्लेखनीय रूपमा कडा छ। WS-Security एक बिल्ट-इन मानक हो जसले SSL समर्थनको अतिरिक्त आवश्यक भएमा SOAP अतिरिक्त इन्टरप्राइज-स्तर सुरक्षा क्षमताहरू प्रदान गर्दछ।
- भरपर्दो सन्देश प्रदर्शनको लागि सफल/पुन: प्रयास गर्नुहोस् तर्क। किनकी REST मा एक मानकीकृत सन्देश संयन्त्रको अभाव छ, यसले संचार असफल हुँदा मात्र पुन: प्रयास गर्न सक्छ। SOAP मध्यवर्तीहरू प्रयोग गर्दा पनि, SOAP ले यसको बिल्ट-इन सफल/पुन: प्रयास तर्कको कारण अन्त-टु-अन्त निर्भरता प्रदान गर्दछ।
- SOAP पहिले नै ACID मापदण्डहरूको पालना गर्दछ। लेनदेनले डाटाबेससँग कसरी अन्तरक्रिया गर्न सक्छ भनेर निर्धारण गरेर, ACID अनुपालनले विसंगतिहरूलाई कम गर्छ र डाटाबेसको स्थिरतालाई सुरक्षित गर्दछ। किनभने ACID अन्य डेटा स्थिरता मोडेलहरू भन्दा बढी सतर्क छ, संवेदनशील लेनदेनहरू प्रबन्ध गर्दा यो प्रायः प्रयोग गरिन्छ, चाहे वित्तीय वा अन्यथा।
- SOAP पूर्ण रूपमा XML-आधारित सञ्चार भएकोले प्रोग्रामरहरूलाई बुझ्न यो सरल छ।
- XML सन्देश प्रोटोकल HTTP प्रोटोकल को एक अतिरिक्त हो।
- एक कम्प्युटरबाट अर्को कम्प्युटरमा सञ्चार SOAP सन्देश मार्फत फैलाउन सकिन्छ।
- क्लाइन्ट-सर्भर आर्किटेक्चर पनि लागू गर्न सकिन्छ। एक SOAP प्रोटोकल सन्देश क्लाइन्ट द्वारा सर्भर-साइड स्थित रिमोट प्रक्रिया कल कल गर्न प्रयोग गर्न सकिन्छ।
REST Vs SOAP भिन्नताहरू
1। वास्तुकला
एपीआई मुख्यतया सर्भरमा एप्लिकेसनको व्यापार तर्कको विशिष्ट कम्पोनेन्टहरू देखाउनको लागि हो। जबकि REST ले उही उद्देश्यका लागि URIs को प्रयोग गर्दछ, SOAP ले यसको लागि सेवा इन्टरफेस प्रयोग गर्दछ।
REST API हरू डाटा पछि सिर्जना गरिन्छ, जबकि SOAP API हरू API ले चित्रण गर्ने कार्यक्षमताहरू पछि विकास गरिन्छ। SOAP को तुलनामा, जुन अधिक प्रकार्य-संचालित छ, REST एक अधिक डेटा-संचालित डिजाइन हो।
2। क्याच गर्दै
क्यास योग्यको रूपमा चिन्ह लगाइएको डाटालाई ब्राउजरहरूले सर्भरमा नयाँ अनुरोध नगरीकन पुन: प्रयोग गर्न सकिन्छ। समय र प्रयास बचत यो एक लाभ हो।
SOAP क्वेरीहरू POST अनुरोधहरू मार्फत पेश गरिएका हुनाले HTTP स्तरमा प्रतिक्रियाहरू क्यास गरिने छैन, जसलाई HTTP मानकले गैर-आदर्श मान्दछ। यदि तपाइँ क्यासिङ प्रयोग गर्न चाहनुहुन्छ भने, तपाइँ अझै पनि आवश्यक प्रविधिहरू निर्माण गर्नुपर्छ किनभने REST API ले यो कार्यान्वयन समावेश गर्दैन।
3. संसाधन र ब्यान्डविथ
SOAP द्वारा प्रयोग गरिएको खाम-शैली पेलोड स्थानान्तरणको कारण, त्यहाँ ओभरहेडमा सामान्य वृद्धि भएको छ, जसले अतिरिक्त ब्यान्डविथ आवश्यक पर्दछ। REST को हल्का प्रकृति यी परिस्थितिहरूमा एक लाभ हो किनभने यो सामान्यतया वेब सेवाहरूको लागि प्रयोग गरिन्छ।
4। सुरक्षा
WS-सुरक्षा, जुन SOAP ले समर्थन गर्दछ र यातायात स्तरमा SSL भन्दा अलि बढी गहन छ, वांछनीय छ। यसको साथ इन्टरप्राइज-स्तर सुरक्षा उपायहरू पनि एक उत्तम फिट हो।
SSL को प्रयोग गरेर अन्त्य-देखि-अन्त इन्क्रिप्सन दुबै SOAP र REST द्वारा समर्थित छ, र REST ले HTTPS प्रयोग गर्न सक्छ, HTTP प्रोटोकलको सुरक्षित संस्करण।
5. पेलोडहरू ह्यान्डलिंग
इन्टरनेट मार्फत प्रसारित डाटालाई पेलोड भनिन्छ। "भारी" मानिने पेलोडलाई थप स्रोतहरू चाहिन्छ। SOAP को तुलनामा, जसले XML को उपयोग गर्दछ, REST ले प्राय: पेलोड घटाउन मद्दत गर्न JSON र HTTP प्रयोग गर्दछ।
उत्पन्न कोडको साथ एक विशेष ग्राहक पुस्तकालय सामान्यतया ग्राहक द्वारा SOAP APIs पहुँच गर्न को लागी प्रयोग गरिनु पर्छ किनभने तिनीहरूको अत्यन्त कडा संचार अनुबंधको कारण।
नतिजाको रूपमा, SOAP ले REST भन्दा कम स्तरको अमूर्तता प्रदान गर्दछ र सर्भरसँग धेरै नजिक छ।
REST कहिले प्रयोग गर्ने?
- सार्वजनिक API हरू सिर्जना गर्दै: REST API हरू सार्वजनिक वेब सेवाहरू निर्माण गर्न रुचाइन्छ किनभने तिनीहरू SOAP API भन्दा प्रयोग गर्न र अपनाउन सजिलो देखिन्छ। थप रूपमा, SOAP ले धेरै निर्मित सुरक्षा उपायहरू प्रदान गर्दछ जुन REST सँग छैन, यद्यपि खुला डाटा र सेवाहरूसँग काम गर्दा यी विशेषताहरू आवश्यक पर्दैन।
- मोबाइल एप्स निर्माण: REST सानो, प्रभावकारी, राज्यविहीन, र क्यासयोग्य भएकोले मोबाइल अनुप्रयोगहरू निर्माण गर्नका लागि उपयुक्त छ।
- दुर्लभ सर्भर स्रोतहरू र ब्यान्डविथ प्रयोग गर्दै: REST API मा सबै अनुरोधहरू राज्यविहीन हुनुपर्छ, जसको मतलब प्रत्येक अन्तरक्रिया अलग हुन्छ र प्रत्येक अनुरोध र प्रतिक्रियामा त्यो अन्तरक्रिया पूरा गर्न आवश्यक सबै डाटा समावेश हुन्छ। सर्भरले अघिल्लो अनुरोधहरूको रेकर्ड बचत गर्दैन किनकि यसले प्रत्येकलाई नयाँ अनुरोधको रूपमा व्यवहार गर्दछ। नतिजाको रूपमा, सर्भरलाई धेरै कम मेमोरी चाहिन्छ र छिटो काम गर्दछ किनभने अनुरोधले थप कार्य वा ऐतिहासिक डेटाको पुन: प्राप्ति आवश्यक पर्दैन।
साबुन कहिले प्रयोग गर्ने?
- निजी API हरू सिर्जना गर्दै, विशेष गरी ठूला व्यवसायहरूको लागि: SOAP कर्पोरेट अनुप्रयोगहरूको लागि उपयुक्त छ किनकि यसले विकेन्द्रीकृत, वितरित वातावरणमा डाटा प्रवाह सक्षम गर्दछ र धेरै अनलाइन सुरक्षा सुविधाहरू समावेश गर्दछ।
- अन्तर्निहित तहको रूपमा HTTP बाहेक अन्य यातायात प्रोटोकल प्रयोग गर्दै: SOAP अन्तर्निहित तहको रूपमा HTTP मा निर्भर छैन। तपाइँको आवेदन मा निर्भर गर्दछ, तपाइँ SMTP (सरल मेल स्थानान्तरण प्रोटोकल), JMS (जाभा सन्देश सेवा), वा अर्को यातायात प्रोटोकल प्रयोग गर्न सक्नुहुन्छ।
- स्टेटफुल अपरेशनहरूसँग काम गर्दै: REST API को अनुरोधहरूको विपरीत, SOAP API हरूका अनुरोधहरू स्टेटफुल हुन्छन्, यसको मतलब सर्भरले क्लाइन्टको बारेमा जानकारी बचत गर्छ र अनुरोध वा अपरेशनहरूको श्रृंखलामा प्रयोग गर्दछ। यद्यपि यसले अधिक सर्भर ब्यान्डविथ र स्रोतहरू प्रयोग गर्दछ, यो बैंक स्थानान्तरण जस्ता दिनचर्या वा लिङ्क गरिएका कार्यहरू पूरा गर्नको लागि महत्त्वपूर्ण छ।
निष्कर्ष
REST र SOAP API हरू बीचको तुलनाले यो स्पष्ट बनाउँछ कि REST SOAP भन्दा राम्रो छ। अझै पनि, त्यहाँ परिस्थितिहरू छन् जहाँ SOAP API आवश्यक छ। केहि उदाहरणहरूमा, वेब सेवाहरू REST र SOAP API हरू संयोजन गरेर सिर्जना गरिन्छ।
तसर्थ, प्रयोग केसले कुन एपीआई शैलीले राम्रो काम गर्नेछ भनेर निर्धारण गर्नेछ।
जवाफ छाड्नुस्