在Magento中创建自定义API:第二部分

在本系列中,我们将讨论Magento中的自定义API。

在第一部分中,我们创建了一个完整的定制模块来实现定制API,在该模块中,我们创建了所需的文件以插入模块提供的定制API。

在第二部分和最后一部分中,我们将浏览后端部分,以演示如何使用API​​。

快速回顾

让我们快速回顾一下第一部分。 这是我们已经创建的文件列表:

  • app / etc / modules / Envato_All.xml:这是用于启用我们的自定义模块的文件。
  • app / code / local / Envato / Customapimodule / etc / config.xml:这是一个模块配置文件。
  • app / code / local / Envato / Customapimodule / etc / api.xml:这是一个声明我们模块提供的API的文件。
  • app / code / local / Envato / Customapimodule / etc / wsdl.xml:在此文件中,我们将根据WSDL的约定定义API方法。
  • app / code / local / Envato / Customapimodule / Helper / Data.php:这是Magento翻译系统使用的文件。
  • app / code / local / Envato / Customapimodule / Model / Product / Api.php:这是一个模型文件,可实现我们API方法的逻辑。
  • app / code / local / Envato / Customapimodule / Model / Product / Api / V2.php:这是支持Magento v2 API的文件。

另外,如果您已经启用了自定义模块,则在访问http:// yourmagentostore / api / v2_soap?wsdl = 1页面(其中列出了所有内容)时,您应该会看到我们的API方法“ customapimoduleProductList”与其他API一起列出了Magento中可用的API。

Magento支持“ API角色”和“ API用户”。 我们需要“ API角色”,因为您不想允许用户访问Magento的每个API。 “ API角色”用于创建对API资源具有有限访问权限的角色。

例如,您可以创建一个角色,该角色仅允许对“产品列表” API进行只读访问。 另一方面,您可以创建一个允许修改目录的角色,并且仅将其分配给“授权”用户!

从后端设置“ API用户”和“ API角色”

在本部分中,我们将创建一个演示“ API角色”和“ API用户”。 稍后,我们将使用它们来使用我们的模块提供的自定义API。 前往Magento后端!

设置API角色

转到系统> Web服务>(SOAP / XMLRPC)角色 单击添加新角色以创建新角色。 在“ 角色信息”选项卡下,我在 角色名称”字段中输入了“ Demo SOAP角色”

在Magento中创建自定义API:第二部分_第1张图片

接下来,在“ 角色资源”选项卡下,您将看到带有复选框的其他资源。 单击产品>产品数据复选框。 这意味着“演示SOAP角色”只能访问“产品数据”资源API。 单击“ 保存角色”按钮以保存角色信息。


设置API用户

现在,让我们创建API用户,并将“演示SOAP角色”分配给该用户。 转到系统> Web服务>(SOAP / XMLRPC)用户 单击添加新用户以创建新用户。 在“ 用户信息”标签下,请填写必填信息。

在Magento中创建自定义API:第二部分_第2张图片

此外,在“ 用户角色”选项卡下,选择“ 演示SOAP角色”单选按钮。 单击“ 保存用户”按钮以保存用户信息。

在Magento中创建自定义API:第二部分_第3张图片

就是这样-我们已经设置了所需的角色和用户来访问Magento API!

如何使用Magento API

在本节中,我们将看到如何调用Magento API。 在您的文档根目录下,创建一个示例PHP文件,并将其填充以下内容。

login('soapuser', 'soapuser');
$result = $client-­>customapimoduleProductList($session);
$client-­>endSession($session);
echo '
';
print_r($result);


// v1 call
$client = new SoapClient('http://www.yourmagentostore.com/api/soap/?wsdl=1');
$session = $client-­>login('soapuser', 'soapuser');
$result = $client-­>call($session, 'product.list', array(array()));
$client-­>endSession($session);
echo '
';
print_r($result);

将“ http://www.yourmagentostore.com”更改为您的Magento商店URL。 如前所述,Magento支持两个版本的API,即v1和v2。 在此示例中,我演示了两种方法。

在v2 API模式下,首先我们创建“ SoapClient”类的新实例。 接下来,我们调用“登录”方法登录到Magento商店-当然,我们需要提供在上一节中创建的“ API用户”的用户名和密码。 最后,我们调用“ customapimoduleProductList”方法来检索产品列表! $session变量作为输入参数传递给该方法,以声明该方法的真实性。 这里要注意的重要一点是“ customapimoduleProduct”是资源前缀,“ list”是方法名称。

在v1 API模式下,唯一不同的部分是API方法的调用。 我们使用的是通用的“调用”方法,其中“方法名称”和其他参数作为参数传递。 如您所见,“产品”用作资源前缀,“列表”是方法名称!

结论

这样就总结了系列! 现在,您应该对Magento API感到满意,并且可以根据需要创建自定义API! 随时拍摄您的建议和反馈!

翻译自: https://code.tutsplus.com/tutorials/create-a-custom-api-in-magento-part-two--cms-23821

你可能感兴趣的:(在Magento中创建自定义API:第二部分)