Introdução às APIs da Web do Magento (REST e SOAP)
Publicados: 2020-10-06O framework Magento 2 Web API oferece aos usuários a oportunidade de criar novos serviços que podem se comunicar com módulos de terceiros. Eles são Magento 2 suporta serviços web REST e SOAP baseados em operações CRUD (criar, ler, atualizar e excluir).
Neste artigo, explicaremos as etapas iniciais do uso da API do Magento 2. Essas APIs aceleram o poder de processamento e facilitam a transmissão de dados, como produtos, clientes ou pedidos, além de transferi-los para um sistema de terceiros. Ele também ajuda você a gerenciar o inventário.
Ao automatizar o processo, o uso da API ajuda você a escrever menos código.
Índice
- O que são APIs da Web Magento?
- O que você pode fazer com as APIs da Web do Magento?
- Introdução: com a API Rest do Magento 2
- Criar usuário de serviço da Web no Magento 2
- Autenticação da API REST do Magento 2
- Obter módulos usando a API REST no Magento 2
- Usar serviços SOAP
- Serviços SOAP ― Autenticação usando Magento 2
- Palavras finais
O que são APIs da Web Magento?
A API da web do Magento é muito fácil de entender para desenvolvedores que desejam usar serviços da web que ajudam a se comunicar com o sistema Magento. Esses recursos são fundamentais para a API:
- O Magento 2 suporta REST (Representational State Transfer) e SOAP (Simple Object Access Protocol).
- Ele oferece três tipos de autenticação: 1) OAuth 1.0a para autenticação de aplicativos de terceiros, 2) o método de tokenização para autenticação de aplicativos móveis e 3) credencial de login para administração e verificação do cliente.
- Você pode configurar qualquer API da web Magento ou de terceiros escrevendo algumas linhas de XML.
- Ele suporta filtragem de campo da API da web que conserva a resposta móvel.
- A estrutura atual é baseada no modelo CRUD (criar, ler, atualizar, excluir) e de pesquisa.
O que você pode fazer com as APIs da Web do Magento?
As APIs ajudam vários módulos a se comunicarem entre si. Eles podem ser usados para executar uma ampla gama de tarefas. Por exemplo:
- Você pode criar lojas online usando Magento e conectá-las a um sistema físico como POS (Point of Sale) para controlar o estoque globalmente
- Integre facilmente com sistemas de back-end CRM (Customer Relationship Management) ou ERP (Enterprise Resource Planning), como Salesforce, Microsoft Dynamics ou outro software de som
- Ajuda a conectar-se com o CMS (Sistema de Gerenciamento de Conteúdo)
- Você também pode criar widgets JavaScript no backend Magento (painel de administração) ou na loja Magento
Introdução: com a API Rest do Magento 2
Para criar uma função de serviço da Web no Magento 2, siga estas etapas fáceis:
1. Faça login no painel de administração do Magento 2.
2. Vá para System >> User Roles e clique no botão Add New Role .
3. Digite o nome da função .
4. No campo Your Password , digite a senha atual do seu Magento 2 Admin.
5.No lado esquerdo, clique em Recursos de função. Em Acesso ao recurso, selecione apenas o que é necessário para o seu serviço web.
6.Uma vez feito, clique em Save Role.
Criar usuário de serviço da Web no Magento 2
Crie um novo usuário para a função recém-criada seguindo estas etapas:
1. Vá para Sistema >> Todos os usuários e clique em Adicionar novo usuário .
2. Insira as informações necessárias, incluindo Nome de usuário , Nome e sobrenome , E - mail e Senha .
3. No lado esquerdo, clique em Função do usuário e selecione a função recém-criada. Feito isso, clique no botão Salvar usuário .
Autenticação da API REST do Magento 2
Aqui, autenticarei a API REST por meio do método de autenticação de token. Isso envolve passar um nome de usuário e senha na conexão inicial e receber um token que será salvo em uma variável para chamadas posteriores.
<?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); ?>
Observação: o nome de usuário e a senha são usados como exemplo.
Obter módulos usando a API REST no Magento 2
Você pode buscar dados usando a API REST do Magento 2. Aqui está uma lista completa de APIs REST para Magento EE e CE.
<?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); ?>
No código acima, já passei o token (que foi buscado anteriormente) com a URL da API para obter todos os módulos instalados na loja Magento 2.
Aqui está o código completo.
<?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); ?>
Usar serviços SOAP
Antes de entrarmos nos serviços SOAP, é importante aprender sobre as convenções de nomenclatura do Magento:
- Você tem que usar o CamelCase para nomes de serviços. Por exemplo, MyFirstModule
- A string “Service” é omitida, o que significa que você não pode usá-la.
- O prefixo “Magento” e o sufixo “Interface” também são escalados.
- Se o nome do seu 'serviço' for igual ao nome do 'módulo', o nome do módulo será omitido.
Portanto, certifique-se de manter esses pontos em mente.
Serviços SOAP ― Autenticação usando Magento 2
Os recursos SOAP podem ser acessados usando tokens de acesso OAuth por HTTP. A autenticação OAuth é semelhante ao método de token, mas fornece um arranjo mais complexo. Os tokens de acesso são strings que representam uma autorização de acesso emitida para o cliente.
Aqui está o script PHP que explica como obter um token de acesso:
<?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); ?>
Palavras finais
Este artigo delineou o básico das APIs da web do Magento, mas há muito mais que você pode aprender. Se você deseja uma compreensão mais firme do uso da API do Magento 2, deve explorar como os métodos são integrados ao Magento 2 e às extensões de terceiros. Você também deve entender como passar as informações para o sistema necessário.
Então é isso!
Para experimentar uma hospedagem Magento mais rápida com tranquilidade, confira este teste gratuito de 3 dias no DigitalOcean, Vultr e Linode.