एक Magento 2 "वेब एपीआई एकीकरण" क्या है


9

प्रति डेवलपर प्रलेखन

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

...

Magento के व्यवस्थापक पर एक नया एकीकरण बनाएँ। एकीकरण बनाने के लिए, सिस्टम> एकीकरण> नया एकीकरण जोड़ें पर क्लिक करें। यह सुनिश्चित करना सुनिश्चित करें कि एकीकरण किन संसाधनों तक पहुंच सकता है।

यह सब स्पष्ट नहीं है कि वास्तव में, एक एकीकरण क्या है। पहला दस्तावेज़ीकरण स्निपेट एक एकल HTTP अनुरोध में कई एपीआई कॉल को चेन करने का एक तरीका है (शायद?) दर्शाता है। हालाँकि, इसका कोई सिंटेक्स उदाहरण नहीं है। इसके अलावा, यदि मैं दूसरे प्रलेखन स्निपेट में जानकारी का उपयोग करता हूं तो मैं एक एकीकरण वस्तु बना सकता हूं, लेकिन यह स्पष्ट नहीं है कि मुझे इसके साथ क्या करना है। इसके अलावा, कोड में खुदाई, एकीकरण ऑब्जेक्ट एक अलग प्रमाणीकरण कोड पथ का उपयोग करते दिखाई देते हैं।

क्या किसी के पास यह स्पष्ट विचार है कि ये "एपीआई एकीकरण" क्या हैं, और वे कैसे काम करते हैं?

जवाबों:


7

Magento 2 में 4 प्रकार के उपयोगकर्ता हैं (देखें \ Magento \ प्राधिकरण \ मॉडल \ UserContextInterface ), उनमें से किसी का उपयोग वेब एपीआई के माध्यम से अनुरोध करते समय किया जा सकता है:

  • अनाम उपयोगकर्ता (मेहमान)। यदि कोई अनुरोध करने के लिए टोकन या कुकीज़ का उपयोग नहीं किया गया था, तो उपयोगकर्ता को गुमनाम माना जाता है
  • ग्राहकों। ग्राहक टोकन या कुकी अनुरोध के साथ पारित किया जाना चाहिए
  • व्यवस्थापक। व्यवस्थापक टोकन या कुकी मौजूद होना चाहिए
  • एकीकरण। एकीकरण पहुंच टोकन OAuth 2.0 शैली में पारित किया जाना चाहिए या अनुरोध को ठीक से उपभोक्ता कुंजी, उपभोक्ता रहस्य, पहुंच टोकन, एक्सेस टोकन का उपयोग OAuth 1.0a शैली में किया जाना चाहिए।

एकीकरण का निर्माण किया जा सकता है System > Integration > Add New Integration, इसे वही अनुमतियाँ दी जा सकती हैं जो किसी भी व्यवस्थापक उपयोगकर्ता (ACL वृक्ष समान हैं)। वेब एपीआई अनुरोध, व्यवस्थापक और एकीकरण दोनों की ओर से किया जा सकता है। व्यवस्थापक उपयोगकर्ता से एकीकरण में भिन्नता यह है कि 3 पार्टी OAuth हैंडशेक का उपयोग करके वेब एपीआई क्रेडेंशियल्स को पुनः प्राप्त कर सकती है ।

OAuth हैंडशेक मल्टी-यूजर 3rd पार्टी सिस्टम के साथ स्वचालित रूप से एकीकृत करने की अनुमति देता है (जब 3rd पार्टी द्वारा समर्थित है):

  • एकीकरण निर्माण के दौरान वैकल्पिक फ़ील्ड भरें Callback URLऔर Identity Link URL(दोनों को तृतीय पक्ष प्रणाली द्वारा प्रदान किया जाना चाहिए)
  • जब आप एकीकरण को सक्रिय करने का प्रयास करते हैं, तो OAuth हैंडशेक ट्रिगर हो जाएगा
  • कुछ डेटा को Magento द्वारा Callback URL पर सर्वर-से-सर्वर POST अनुरोध का उपयोग करके भेजा जाएगा। पॉपअप विंडो में आइडेंटिटी लिंक यूआरएल (3rd पार्टी सिस्टम पर लॉगिन पेज) खोला जाएगा और कुछ जीईटी पैरामीटर भेजे जाएंगे
  • सफलतापूर्वक प्रमाणित उपयोगकर्ता क्रेडेंशियल्स के बाद, 3 पार्टी Magento से अनुरोध टोकन का अनुरोध करेगी और फिर एक्सेस टोकन के लिए इसका आदान-प्रदान करेगी। यह अपने रिकॉर्ड पर उपयोगकर्ता खाते के साथ वर्तमान Magento के उदाहरण को भी जोड़ देगा। यानी कई Magento व्यापारियों के एक ही 3rd पार्टी CRM में खाते हो सकते हैं, और प्रत्येक व्यापारी का खाता उसके Magento उदाहरण से बंधा होगा
  • मैगेंटो वेब एपीआई के लिए अनुरोध करने के लिए जारी किए गए एक्सेस टोकन का उपयोग किया जा सकता है। यह टोकन मैगेंटो इंटीग्रेशन रिकॉर्ड से जुड़ा होगा और APIइसमें इंटीग्रेशन एडिट पेज के टैब में चुने गए संसाधनों तक पहुंच होगी

एक साथ कई सेवाओं को कॉल करने के बारे में त्वरित ध्यान दें, इस सुविधा को एकत्रीकरण एपीआई के रूप में जाना जाता है और इसमें एकीकरण उपयोगकर्ता प्रकार के साथ कुछ भी नहीं है।


यदि मैं गलत हूं तो मुझे सही करों। लेकिन Magento 2 प्रमाणीकरण में कोई उपभोक्ता कुंजी नहीं है। डॉक्स स्पष्ट रूप से निर्दिष्ट करता है कि M2 एक दो पैर वाली प्रमाणीकरण प्रक्रिया को लागू करता है। अनुरोध और पहुँच। जैसा कि यहाँ कहा गया है devdocs.magento.com/guides/v2.2/get-started/authentication/…
vitoriodachef

2

यहाँ एकीकरण वह परिदृश्य है जो इंटीग्रेटर्स और डेवलपर्स को वेब सेवाओं का उपयोग करने का साधन है जो Magento API के माध्यम से Magento सिस्टम के साथ संचार करते हैं। वे एक या कई सेवाओं को कॉल कर सकते हैं जो Magento की अनुमति है कि व्यवस्थापक नए एकीकरण फॉर्म में कॉन्फ़िगर करें (विशिष्ट एपीआई का चयन करने के लिए उस स्क्रीन में स्क्रॉल करें या सभी का चयन करें)

सुरक्षा समस्या के कारण, Magento सिर्फ तीन प्रकार के प्रमाणीकरणों में से एक के माध्यम से बाहरी अधिकृत अनुरोधों की अनुमति देता है: - टोकन-आधारित प्रमाणीकरण - Outh- आधारित प्रमाणीकरण - सत्र-आधारित प्रमाणीकरण

किसी भी प्रकार के प्रमाणीकरण के साथ, इंटीग्रेटर और डेवलपर के पास Magento के साथ एक उपयोगकर्ता खाता रजिस्टर होना चाहिए। उपयोगकर्ता खाते के साथ, आप टोकन आईडी प्राप्त कर सकते हैं जिसे आपको अपने अनुरोध के साथ Magento को भेजना होगा।

उदाहरण के लिए, मुझे लगता है कि आपके पास पहले से ही उपयोगकर्ता खाता और एकीकरण जानकारी है। अब आप Magento से टोकन प्राप्त करने का अनुरोध करने जा रहे हैं। मैं आपको पहले प्रकार के प्रमाणीकरण (टोकन-आधारित प्रमाणीकरण) का उपयोग करके स्निपेट दिखाता हूं:

curl -X POST "https://localhost/magento/index.php/rest/V1/integration/admin/token" \
     -H "Content-Type:application/json" \
     -d '{"username":"user_example", "password":"123123q"}'

सफल होने पर आपको टोकन मिलता है "asdf3hjklp5iuytre"

अब आप इसके एपीआई को कॉल करके डेटा का अनुरोध करने के लिए Magento के साथ एकीकरण कर सकते हैं

curl -X GET "http://localhost/magento/index.php/rest/V1/customers/2" \
     -H "Authorization: Bearer asdf3hjklp5iuytre"

अंत में, आप Magento के ग्राहकों की एक सूची प्राप्त कर सकते हैं। मैं उदाहरण के लिए कर्ल कमांड का उपयोग कर रहा हूं, सेवा प्रदाता के लिए वेब सेवा अनुरोध बनाने के लिए PHP, C # या किसी अन्य भाषा द्वारा इंटीग्रेटर और डेवलपर लागू हो सकता है।

पुनश्च: परीक्षण के लिए सेवा अनुरोध करने के लिए साबुन एक उपयोगी उपकरण है।

उम्मीद है की यह मदद करेगा।


सिस्टम> एकीकरण> में "एकीकरण" वस्तुओं को शामिल करना बिल्कुल भी आसान नहीं है। क्या मैं कुछ भूल रहा हूँ?
एलन स्टॉर्म

क्षमा करें, मैं अभी जिस तरह से इंटीग्रेटर और डेवलपर मैजेंटो के साथ एकीकृत करता हूं, उस पर ध्यान केंद्रित करता हूं। एकीकरण ऑब्जेक्ट के साथ, व्यवस्थापक कस्टम कर सकते हैं कि किस एपीआई को अनुमति देने के बजाय मैगेंटो उपयोगकर्ता की भूमिका पर निर्भर करता है। तीसरे पक्ष को उपभोक्ता वस्तु टोकन और गुप्त टोकन को एकीकरण ऑब्जेक्ट में मैगेंटो वेब एपीआई तक पहुंचने के तरीकों में से एक के रूप में OAuth- आधारित प्रमाणीकरण का उपयोग करना चाहिए। देखें devdocs.magento.com/guides/v2.0/get-started/authentication/...
तुआन गुयेन

जब मैं पहले एक के बाद दूसरी कर्ल कमांड का उपयोग करता हूं तो मुझे "{" संदेश ":"% फ़ील्डनाम =% fieldValue "," पैरामीटर ": {" फ़ील्डनाम ":" customerId "," fieldVame ": 2}} के साथ ऐसी कोई इकाई नहीं मिली “इस संदेश का क्या मतलब है?
ऋषभ राय राय
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.