Magento 2 REST API入門

Magento 2 API框架容許開發人員建立與Magento 2商店進行通訊的新服務。它支持RESTSOAPWeb服務,而且基於CRUD操做(建立,讀取,更新,刪除)和搜索模型。php

目前,Magento 2使用如下三種身份驗證方法:html

  • 用於第三方應用程序的OAuth 1.0a驗證。
  • 令牌用於認證移動應用。
  • 管理員和客戶身份驗證與登陸憑據。

這些驗證方法只能訪問分配給它們的資源。Magento 2 API框架首先檢查呼叫是否具備執行請求的適當受權。API框架還支持API響應的現場過濾,以保持蜂窩帶寬。json

開發人員使用Magento 2 API進行普遍的任務。例如,您能夠建立購物應用程序並將其與Magento 2商店集成。您還能夠構建一個網絡應用程序,您的員工可使用它來幫助客戶進行購買。在API的幫助下,您能夠將Magento 2商店與CRM,ERP或POS系統集成。api

在Magento 2中使用REST API

若是要使用基於令牌的Magento 2 REST API,首先您將須要從Magento 2進行身份驗證並獲取令牌。而後,您必須將其傳遞給您執行的每一個請求的標題。網絡

要使用基於令牌的身份驗證在Magento 2中開始使用REST API,您將須要建立一個Web服務用戶角色,並將該角色註冊到新的Magento 2管理用戶。請記住,建立新角色和用戶是必要的,由於在Web服務中使用Magento Owner用戶並非一個好習慣。app

本教程的目的:使用此REST API來獲取Magento 2存儲上安裝的全部模塊。框架

在Magento 2中建立Web服務角色

要在Magento 2中建立Web服務角色,請按照下列步驟操做:curl

  1. 登陸到Magento 2管理面板
  2. 轉到系統 >> 用戶角色並點擊添加新角色
  3. 輸入角色名稱
  4. 您的密碼字段中,輸入您的Magento 2管理員的當前密碼。
  5. 如今,在左側,單擊角色資源
  6. 資源訪問中,僅選擇Web服務所需的那些。
  7. 完成後,點擊保存角色

在Magento 2中建立Web服務用戶

如今,經過如下步驟爲新建立的角色建立一個新用戶:ide

  1. 轉到系統 >> 全部用戶並點擊添加新用戶
  2. 輸入所需信息,包括用戶名第一電子郵件密碼等。
  3. 如今,在左側,單擊用戶角色並選擇新建立的角色。
  4. 完成後,單擊保存用戶

就這樣; 如今我將使用該用戶到Magento 2 REST API Web服務。ui

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);

?>

執行此代碼(包含相關信息)後,您將看到相似於如下內容的輸出:

 

相關文章
相關標籤/搜索