zoukankan      html  css  js  c++  java
  • Magento 2 REST API入门

    Magento 2 API框架允许开发人员创建与Magento 2商店进行通信的新服务。它支持RESTSOAPWeb服务,并且基于CRUD操作(创建,读取,更新,删除)和搜索模型。

    目前,Magento 2使用以下三种身份验证方法:

    • 用于第三方应用程序的OAuth 1.0a验证。
    • 令牌用于认证移动应用。
    • 管理员和客户身份验证与登录凭据。

    这些验证方法只能访问分配给它们的资源。Magento 2 API框架首先检查呼叫是否具有执行请求的适当授权。API框架还支持API响应的现场过滤,以保持蜂窝带宽。

    开发人员使用Magento 2 API进行广泛的任务。例如,您可以创建购物应用程序并将其与Magento 2商店集成。您还可以构建一个网络应用程序,您的员工可以使用它来帮助客户进行购买。在API的帮助下,您可以将Magento 2商店与CRM,ERP或POS系统集成。

    在Magento 2中使用REST API

    如果要使用基于令牌的Magento 2 REST API,首先您将需要从Magento 2进行身份验证并获取令牌。然后,您必须将其传递给您执行的每个请求的标题。

    要使用基于令牌的身份验证在Magento 2中开始使用REST API,您将需要创建一个Web服务用户角色,并将该角色注册到新的Magento 2管理用户。请记住,创建新角色和用户是必要的,因为在Web服务中使用Magento Owner用户并不是一个好习惯。

    本教程的目的:使用此REST API来获取Magento 2存储上安装的所有模块。

    在Magento 2中创建Web服务角色

    要在Magento 2中创建Web服务角色,请按照下列步骤操作:

    1. 登录到Magento 2管理面板
    2. 转到系统 >> 用户角色并点击添加新角色
    3. 输入角色名称
    4. 您的密码字段中,输入您的Magento 2管理员的当前密码。
    5. 现在,在左侧,单击角色资源
    6. 资源访问中,仅选择Web服务所需的那些。
    7. 完成后,点击保存角色

    在Magento 2中创建Web服务用户

    现在,通过以下步骤为新创建的角色创建一个新用户:

    1. 转到系统 >> 所有用户并点击添加新用户
    2. 输入所需信息,包括用户名第一电子邮件密码等。
    3. 现在,在左侧,单击用户角色并选择新创建的角色。
    4. 完成后,单击保存用户

    就这样; 现在我将使用该用户到Magento 2 REST API Web服务。

    Magento 2 REST API验证

    如前所述,我将通过令牌认证验证REST API。这意味着我将 在初始连接中传递 用户名  和 密码并接收 令牌  。该令牌将保存在一个变量中,该变量将在标题中传递以进一步调用。

    <?php

    //API URL for authentication
    $apiURL="http://magento-91647-257956.cloudwaysapps.com/index.php/rest/V1/integration/admin/token";

    //parameters passing with URL
    $data = array("username" => "apiaccess", "password" => "cloudways123");
    $data_string = json_encode($data);

    $ch = curl_init($apiURL);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Content-Length: ".strlen($data_string)));
    $token = curl_exec($ch);

    //decoding generated token and saving it in a variable
    $token=  json_decode($token); 

    ?>

    在上述代码中,我 使用API URL传递 用户名  和 密码,  以验证Magento 2 REST API,然后将该标记保存  在一个变量中供进一步使用。请记住,您必须使用新用户的用户名密码(之前创建)。

    在Magento 2中获取使用REST API的模块

    您可以使用Magento 2 REST API获取几乎所有内容。REST API,用于Magento的EE和CE名单这个主题很好的指导。

    为了演示API,我将把所有安装的模块放在Magento 2商店上。这是脚本:

    <?php

    //Using above token into header

    $headers = array("Authorization: Bearer ".$token);
     
    //API URL to get all Magento 2 modules
    $requestUrl='http://magento-91647-257956.cloudwaysapps.com/index.php/rest/V1/modules';
     
    $ch = curl_init($requestUrl);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
     
    //decoding result
    $result json_decode($result);
     
    //printing result
    print_r($result);
     
    ?>

    在上面的代码中,我 使用API​​ URL 标头中传递了令牌(前面提到的), 以获得Magento 2存储上安装的所有模块。

    接下来,我将打印结果。这是完整的代码:

    <?php

    //API URL for authentication
    $apiURL="http://magento-91647-257956.cloudwaysapps.com/index.php/rest/V1/integration/admin/token";

    //parameters passing with URL
    $data = array("username" => "apiaccess", "password" => "cloudways123");
    $data_string = json_encode($data);

    $ch = curl_init($apiURL);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Content-Length: ".strlen($data_string)));
    $token = curl_exec($ch);

    //decoding generated token and saving it in a variable
    $token=  json_decode($token);

    //******************************************//

    //Using above token into header
    $headers = array("Authorization: Bearer ".$token);

    //API URL to get all Magento 2 modules
    $requestUrl='http://magento-91647-257956.cloudwaysapps.com/index.php/rest/V1/modules';

    $ch = curl_init($requestUrl);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);

    //decoding result
    $result=  json_decode($result);

    //printing result
    print_r($result);

    ?>

    执行此代码(包含相关信息)后,您将看到类似于以下内容的输出:

  • 相关阅读:
    硬盘数据丢失,到底该如何修复?
    硬盘数据丢失,到底该如何修复?
    CMD命令操作MySql数据库详解
    CMD命令操作MySql数据库详解
    Java中Calendar.DAY_OF_WEEK、DAY_OF_MONTH需要减一的原因
    Java中Calendar.DAY_OF_WEEK、DAY_OF_MONTH需要减一的原因
    java中JFrame类中函数addWindowListener(new WindowAdapter)
    java中JFrame类中函数addWindowListener(new WindowAdapter)
    关于java数据库章节connection连接不成功的时候!!!
    树莓派4之点亮led
  • 原文地址:https://www.cnblogs.com/shenlongjue/p/7513839.html
Copyright © 2011-2022 走看看