Magento api:指定了无效的Web服务适配器

时间:2012-12-18 12:22:16

标签: php api magento

为了让maio中的api工作,我需要做些什么吗?

我正在本地安装(1.7)上访问/ api / soap /?wsdl并返回以下错误:

Invalid webservice adapter specified.

网站上的所有内容都已启用但我无法找到有关其他步骤的信息,以便让api工作。

3 个答案:

答案 0 :(得分:37)

我已经通过关闭这样的MultiViews选项从htaccess解决了这个问题:

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

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

答案 1 :(得分:2)

如果您希望保持与旧API调用的兼容性,则有一种不同的方法。出于某些不明原因,我的Apache服务器在重写解析期间不分析字符串^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以使用内部apache函数来设置小写参数。将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

带来

答案 2 :(得分:-1)

我通过编辑我的虚拟主机文件 (/etc/apache2/sites-available/mag.dev.conf) 解决了这个问题:

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

现在加载xml响应。

平台是ubuntu 12.04