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

use*_*124 3 magento magento2

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

/rest/default/V1/directory/countries
Run Code Online (Sandbox Code Playgroud)

这在一些商店有效,但我收到了这个错误:

{
"message" : "Specified request cannot be processed.",
"trace" : null
}
Run Code Online (Sandbox Code Playgroud)

我开始使用 URL 格式并删除“默认”并使用它:

/rest/V1/directory/countries
Run Code Online (Sandbox Code Playgroud)

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

小智 7

Magento 2 Api 的语法是

http://<:host:>/rest/<: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-View 的信息。如果store_code在数据库中找不到指定的,则 Api 返回“无法处理指定的请求”。信息。

  • 当您不指定时,store_code它首先查找默认网站,然后查找此网站的默认商店,然后查找与此商店关联的默认商店视图。最后它返回这个默认 Store-View 的信息。可以从管理面板更改默认商店和商店视图的关联。 参考图片

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

http://<:host:>/rest/<:store_code:>/<:api_path:>