我们从magento管理员端配置了REST API用户和权限。 然后我们尝试了使用客户密钥和密钥的授权方法,并获得了访问令牌和令牌密钥。
然后我们尝试使用OAuth版本1.0调用API URL
[Magentosite]/api/rest/products
但以404错误结束。
还有一些我发现网址必须采用以下格式...
[Magentosite]/api.php?type=rest/products
但以指定的无效网络服务适配器结束。
使用magento版本 - 1.9.0.1
有人可以告诉我们这个网址直接有什么问题吗?
我们在apache文件中添加了以下更改
后,它起了作用并得到了响应/etc/apache2/sites-available/default
<Directory /var/www/mymagento/>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
答案 0 :(得分:0)
在我的情况下,即使我的localhost配置正确,我仍然收到404,因为在我的请求标题中我没有发送内容类型:
Content-Type:text / xml
在第一次成功请求之后,我能够使用api,并且在下一个请求中,内容类型不是必需的,即使我没有发送正确的凭据,magento也会返回503,而不是像以前那样的404。
答案 1 :(得分:0)
你已经回答了你的问题,magento访问REST API,你找到了404 url,大多数链接到了缺失的AllowOverride所有你的apache配置文件夹,如https://magento.stackexchange.com/questions/29936/rest-api-returns-404中所述
<Directory /var/www/html/magento/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
在/etc/apache2/apache2.conf中添加您的设置
答案 2 :(得分:0)
在我的情况下,生产服务器的.htaccess缺少以下行,我通过比较本地主机和生产服务器的.htacess文件得出了答案。
############################################
## rewrite API2 calls to api.php (by now it is REST only)
RewriteRule ^api/rest api.php?type=rest [QSA,L]
答案 3 :(得分:0)
对于在遵循所有其他建议后仍然得到404的任何人,请确保未在Apache VirtualHost配置中设置MultiViews
。