Magento REST API - 如何确定API基本URL?



我正在运行Magento 2.2.5,并且在确定用于发出API请求的URL时遇到了麻烦。例如,为了获取国家/地区列表,我看到使用以下语法:

/rest/default/V1/directory/countries

它在某些商店有效,但我收到此错误:

{
"message" : "Specified request cannot be processed.",
"trace" : null
}

我开始使用 URL 格式并删除了"默认"并改用了它:

/rest/V1/directory/countries

然后请求成功。如何确定用于Magento REST API请求的基本URL?到目前为止,我还没有找到这个记录。

Magento 2 API 的语法是

http://<:主机:>/休息/<:store_code:>/<:api_path:>

在这里store_code可以是Magento2实例的任何一个"商店视图"。您可以在管理面板中获取商店代码。您可以使用store_code通过 API 获取特定于该商店视图的信息。默认情况下,Magento2安装带有1个网站,1个商店和1个商店视图(此商店视图具有代码">默认",在您的情况下,这可能已更改,因此您会收到错误)。

借助图像可以理解架构 参考图片 参考: https://docs.magento.com/m2/ce/user_guide/stores/websites-stores-views.html

  • 当您指定store_code时,它会检查该特定商店视图的信息。如果在数据库中找不到指定的store_code,API 将返回"无法处理指定的请求">消息。

  • 如果未指定store_code,它将首先查找默认网站,然后查找此网站的默认应用商店,然后查找与此应用商店关联的默认应用商店视图。最后,它返回此默认商店视图的信息。默认商店和商店视图的关联可以从管理面板更改。 参考图片

因此,API的URL应该在下面,以防您需要存储特定信息。 如果您需要所有商店的信息,可以将store_code设置为all

http://<:主机:>/休息/<:store_code:>/<:api_path:>

最新更新