2012-12-18 27 views
17

क्या मैगेंटो में एपीआई प्राप्त करने के लिए मुझे कुछ विशिष्ट करने की ज़रूरत है?Magento api: अवैध webservice एडाप्टर निर्दिष्ट

मैं अपने स्थानीय स्थापना (1.7) पर जाकर कर रहा हूँ/API/साबुन/wsdl और यह निम्नलिखित त्रुटि देता है:

Invalid webservice adapter specified. 

सब कुछ साइट में सक्षम दिखता है, लेकिन मैं नहीं कर सकते अन्य कदम पर किसी भी जानकारी मिल काम करने के लिए एपीआई पाने के लिए मुझे करने की ज़रूरत है।

+2

/index.php/api/V2_soap?wsdl=1 आप इस – chanz

+0

ठीक करने की कोशिश की तो यह काम करता है केवल जब index.php यूआरएल में शामिल है है। ऐसा क्यों है? –

+0

index.php आवश्यक नहीं है, आप इस तरह से भी कोशिश कर सकते हैं www.yourmagento.com/api/V2_soap?wsdl=1 – chanz

उत्तर

35
द्वारा लाया गया है

मैं इस तरह MultiViews विकल्प को बंद करके इनको से हल किया है:

से

<Directory /var/www/magento> 
      Options Indexes FollowSymLinks MultiViews 
</Directory> 

को
<Directory /var/www/magento> 
      Options +Indexes +FollowSymLinks -MultiViews 
</Directory> 
+1

मेरे लिए काम करता है, धन्यवाद! – azendh

+0

समस्या को हल करता है, धन्यवाद! – Sven

+2

यह अपाचे त्रुटि को फेंक देता है 'या तो सभी विकल्पों को + या - या कोई विकल्प नहीं हो सकता है' तो उपरोक्त के लिए सही वाक्यविन्यास 'विकल्प + इंडेक्स + फॉलोसिमलिंक्स -मल्टीवीव्स' – Gihan

2

यदि आप पुरानी एपीआई कॉल के साथ संगतता रखना चाहते हैं तो एक अलग दृष्टिकोण है। कुछ अस्पष्ट कारणों से, मेरा अपाचे सर्वर रीराइट पार्सिंग के दौरान स्ट्रिंग ^api/... का विश्लेषण नहीं करता है।

लेकिन आप अभी भी Magento PHP कोड को बदले बिना http://www.somedomain.com/api/v2_soap?wsdl=1 का उपयोग कर सकते हैं।

.htaccess में बदलें:: तुम बस निम्नलिखित की तरह .htaccess को बदलने की जरूरत द्वारा

RewriteRule ^api/([a-z][0-9a-z_]+)/?$ api.php?type=$1 [QSA,L]

RewriteRule ^api(\.php)?/([a-z][0-9a-z_]+)/?$ api.php?type=$2 [QSA,L] (देखना^api.php/बजाय^API /)

और भी बेहतर अगर आप में से कुछ, http://www.somedomain.com/api/V2_soap?wsdl=1 है (V2_soap अपरकेस है), तो आप एक RewriteMap जोड़ने के लिए आंतरिक अपाचे समारोह का उपयोग करने के छोटे अक्षरों में पैरामीटर सेट करना होगा। अपने वर्चुअल होस्ट में जोड़े RewriteMap:

RewriteMap lc int:tolower

और .htaccess में

RewriteRule ^api(\.php)?/([a-zA-Z][0-9a-z_]+)/?$ api.php?type=${lc:$2} [QSA,L]

यह api.php स्क्रिप्ट के लिए पैरामीटर लोअरकेस करने के लिए सेट है और यह भी स्वीकार करेंगे 'V2_soap' नियमित अभिव्यक्ति में

यह अंतिम भाग @dreeves in this answer

0

मैं अपने आभासी मेजबान फ़ाइल में संपादन करके इस हल (/etc/apache2/sites-available/mag.dev.conf) की तरह यह:

<Directory /var/www/mag/mag> 
     Options +Indexes +FollowSymLinks -MultiViews 
     ..... 
    </Directory> 

अब यह एक्सएमएल प्रतिक्रिया लोड कर रहा है।

platfrom Ubuntu 12.04