我正在尝试使用 scribe 使用 Java 到 Magento Rest API。我已按照此处概述的教程进行操作。总的来说,我对 Magento 和 REST 很陌生。我在 Tomcat 6.0 服务器上使用 Java 1.5。 Magento 是 1.8.0.0.
http://gmartinezgil.wordpress.com/2013/08/05/using-the-magento-rest-api-in-java-with-scribe/
所以我目前已经获得了 oAuth 令牌和验证。
final String MAGENTO_API_KEY = "My Key";
final String MAGENTO_API_SECRET = "My Secret";
final String MAGENTO_REST_API_URL = "http://127.0.0.1/magento/api/rest";
我可以授权应用程序并获取验证器代码,但是当尝试从 REST URL 检索 XML(我认为?)时,我得到以下信息。
404
<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /magento/api/rest/products was not found on this server.</p>
</body></html>
我尝试从 /magento/index.php/api/rest 获取数据,但出现了同样的问题。
所以这让我相信我为 REST API 遗漏了一些东西。通过一些研究,我发现可能需要对 htaccess 文件进行一些更改,但我不确定这是否正确以及应该是什么。
这些是目前 Magento 内 htaccess 文件中的条目。
############################################
## uncomment next line to enable light API calls processing
# RewriteRule ^api/([a-z][0-9a-z_]+)/?$ api.php?type=$1 [QSA,L]
############################################
## rewrite API2 calls to api.php (by now it is REST only)
RewriteRule ^/api/rest api.php?type=rest [QSA,L]
任何有关这方面的帮助都会很棒。我不确定它是 htaccess 文件还是其他文件,但我已经尝试了大约一周的不同操作,但没有成功。
您可以通过
/magento/
URL 访问除 Magento 站点主页之外的任何页面吗? 基于通用(非 Magento)404 页面
404
<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /magento/api/rest/products was not found on this server.</p>
</body></html>
听起来您的网络服务器没有捕获将请求重定向到 Magento 的
index.php
“front-controller/bootstrap”文件的 URL 重写规则。
造成这种情况的原因有很多,但我会检查您的
RewriteBase
文件夹设置是否正确。
############################################
## you can put here your magento root folder
## path relative to web root
RewriteBase /magento/