Magento Web API 入門(REST 和 SOAP)
已發表: 2020-10-06Magento 2 Web API 框架為用戶提供了創建可以與第三方模塊通信的新服務的機會。 它們是 Magento 2 支持基於 CRUD 操作(創建、讀取、更新和刪除)的 REST 和 SOAP Web 服務。
在本文中,我們將解釋使用 Magento 2 API 的初始步驟。 這些 API 加快了處理能力並促進了數據的傳輸,例如產品、客戶或訂單,以及將其傳輸到第三方系統。 它還可以幫助您管理庫存。
通過自動化流程,API 的使用可以幫助您編寫更少的代碼。
目錄
- 什麼是 Magento Web API?
- 您可以使用 Magento Web API 做什麼?
- 入門:使用 Magento 2 Rest API
- 在 Magento 2 中創建 Web 服務用戶
- Magento 2 REST API 身份驗證
- 在 Magento 2 中使用 REST API 獲取模塊
- 使用 SOAP 服務
- SOAP 服務——使用 Magento 2 進行身份驗證
- 最後的話
什麼是 Magento Web API?
Magento Web API 對於希望使用有助於與 Magento 系統通信的 Web 服務的開發人員來說非常容易理解。 這些功能是 API 的關鍵:
- Magento 2 支持 REST(表示狀態傳輸)和 SOAP(簡單對象訪問協議)。
- 它提供三種類型的身份驗證:1) 用於第三方應用程序身份驗證的 OAuth 1.0a,2) 用於移動應用程序身份驗證的令牌化方法,以及 3) 用於管理和客戶驗證的登錄憑據。
- 您可以通過編寫幾行 XML 來配置任何 Magento 或第三方 Web API。
- 它支持保存移動響應的 Web API 的字段過濾。
- 當前的框架基於 CRUD(創建、讀取、更新、刪除)和搜索模型。
您可以使用 Magento Web API 做什麼?
API 幫助各種模塊相互通信。 它們可用於執行廣泛的任務。 例如:
- 您可以使用 Magento 創建在線商店,並將它們與 POS(銷售點)等物理系統連接,以控制全球庫存
- 輕鬆與 CRM(客戶關係管理)或 ERP(企業資源規劃)後端系統集成,例如 Salesforce、Microsoft Dynamics 或其他完善的軟件
- 它有助於與 CMS(內容管理系統)連接
- 您還可以在 Magento 後端(管理面板)或 Magento 店面創建 JavaScript 小部件
入門:使用 Magento 2 Rest API
要在 Magento 2 中創建 Web 服務角色,請按照以下簡單步驟操作:
1.登錄 Magento 2 管理面板。
2.轉到系統>>用戶角色並單擊添加新角色按鈕。
3. 輸入角色名稱。
4. 在您的密碼字段中,輸入您的 Magento 2 管理員的當前密碼。
5.在左側,單擊角色資源。 在資源訪問下,僅選擇您的 Web 服務所需的內容。
6.一旦完成,點擊保存角色。
在 Magento 2 中創建 Web 服務用戶
按照以下步驟為新創建的角色創建一個新用戶:
1.進入系統>>所有用戶,然後點擊添加新用戶。
2.輸入所需的信息,包括用戶名、名字和姓氏、電子郵件和密碼。
3. 在左側,單擊用戶角色,然後選擇新創建的角色。 完成後,單擊保存用戶按鈕。
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" => "username", "password" => "********"); $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); ?>
請注意:以用戶名和密碼為例。

在 Magento 2 中使用 REST API 獲取模塊
您可以使用 Magento 2 REST API 獲取數據。 這是 Magento EE 和 CE 的 REST API 的完整列表。
<?php //Using above token into header $headers = array("Authorization: Bearer ".$token); //API URL to get all Magento 2 modules $requestUrl='YourgeneratedUrl'; $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="URL"; //parameters passing with URL $data = array("username" => "username", "password" => "*********"); $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='YourURL'; $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); ?>
使用 SOAP 服務
在我們進入 SOAP 服務之前,了解 Magento 的命名約定很重要:
- 您必須使用 CamelCase 命名服務。 例如,MyFirstModule
- 字符串“Service”被省略,意味著你不能使用它。
- “Magento”前綴和“Interface”後綴也升級了。
- 如果您的“服務”名稱與“模塊”名稱相同,則模塊名稱將被省略。
因此,請務必牢記這些要點。
SOAP 服務——使用 Magento 2 進行身份驗證
可以使用 OAuth 訪問令牌通過 HTTP 訪問 SOAP 資源。 OAuth 身份驗證類似於令牌方法,但提供了更複雜的安排。 訪問令牌是代表頒發給客戶端的訪問授權的字符串。
下面是解釋如何獲取訪問令牌的 PHP 腳本:
<?php $opts = [ 'http'=> [ 'header' => 'Authorization: Bearer 36849300bca4fbff758d93a3379f1b8e' ] ]; $wsdlUrl = 'http://magento.ll/soap/default?wsdl=1&services=testModule1AllSoapAndRestV1'; $serviceArgs = ["id" => 1]; $context = stream_context_create($opts); $soapClient = new SoapClient($wsdlUrl, ['version' => SOAP_1_2, 'stream_context' => $context]); $soapResponse = $soapClient->testModule1AllSoapAndRestV1Item($serviceArgs); ?>
最後的話
本文概述了 Magento Web API 的基礎知識,但您還可以學習更多內容。 如果你想更深入地掌握 Magento 2 API 的使用,那麼你應該探索方法是如何內置在 Magento 2 和第三方擴展中的。 您還應該了解如何將信息傳遞到所需的系統。
就是這樣了!
要高枕無憂地體驗更快的 Magento 託管,請查看 DigitalOcean、Vultr 和 Linode 的 3 天免費試用。