Magento 2 API框架容許開發人員建立與Magento 2商店進行通訊的新服務。它支持REST和SOAPWeb服務,而且基於CRUD操做(建立,讀取,更新,刪除)和搜索模型。php
目前,Magento 2使用如下三種身份驗證方法:html
這些驗證方法只能訪問分配給它們的資源。Magento 2 API框架首先檢查呼叫是否具備執行請求的適當受權。API框架還支持API響應的現場過濾,以保持蜂窩帶寬。json
開發人員使用Magento 2 API進行普遍的任務。例如,您能夠建立購物應用程序並將其與Magento 2商店集成。您還能夠構建一個網絡應用程序,您的員工可使用它來幫助客戶進行購買。在API的幫助下,您能夠將Magento 2商店與CRM,ERP或POS系統集成。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服務角色,請按照下列步驟操做:curl
如今,經過如下步驟爲新建立的角色建立一個新用戶:ide
就這樣; 如今我將使用該用戶到Magento 2 REST API Web服務。ui
如前所述,我將經過令牌認證驗證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獲取幾乎全部內容。該REST API,用於Magento的EE和CE名單這個主題很好的指導。
爲了演示API,我將把全部安裝的模塊放在Magento 2商店上。這是腳本:
<?php
//Using above token into header
在上面的代碼中,我 使用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);
?>
執行此代碼(包含相關信息)後,您將看到相似於如下內容的輸出: