Introducción a las API web de Magento (REST y SOAP)

Publicado: 2020-10-06

El marco de la API web de Magento 2 ofrece a los usuarios la oportunidad de crear nuevos servicios que pueden comunicarse con módulos de terceros. Son Magento 2 compatibles con servicios web REST y SOAP basados ​​en operaciones CRUD (crear, leer, actualizar y eliminar).

En este artículo, explicaremos los pasos iniciales para usar la API de Magento 2. Estas API aceleran el poder de procesamiento y facilitan la transmisión de datos, como productos, clientes o pedidos, así como transferirlos a un sistema de terceros. También le ayuda a administrar el inventario.

Al automatizar el proceso, el uso de API lo ayuda a escribir menos código.

Tabla de contenido

  • ¿Qué son las API web de Magento?
  • ¿Qué puede hacer con las API web de Magento?
  • Primeros pasos: con Magento 2 Rest API
  • Crear usuario de servicio web en Magento 2
  • Autenticación de la API REST de Magento 2
  • Obtenga módulos usando la API REST en Magento 2
  • Usar servicios SOAP
  • Servicios SOAP—Autenticación usando Magento 2
  • Ultimas palabras

¿Qué son las API web de Magento?

La API web de Magento es muy fácil de entender para los desarrolladores que buscan utilizar servicios web que ayuden a comunicarse con el sistema Magento. Estas características son clave para la API:

  • Magento 2 es compatible con REST (Transferencia de estado representacional) y SOAP (Protocolo simple de acceso a objetos).
  • Ofrece tres tipos de autenticación: 1) OAuth 1.0a para la autenticación de aplicaciones de terceros, 2) el método de tokenización para la autenticación de aplicaciones móviles y 3) credencial de inicio de sesión para administración y verificación del cliente.
  • Puede configurar cualquier API web de Magento o de terceros escribiendo unas pocas líneas de XML.
  • Admite el filtrado de campos de la API web que conserva la respuesta móvil.
  • El marco actual se basa en el CRUD (crear, leer, actualizar, eliminar) y el modelo de búsqueda.

¿Qué puede hacer con las API web de Magento?

Las API ayudan a varios módulos a comunicarse entre sí. Se pueden utilizar para realizar una amplia gama de tareas. Por ejemplo:

  • Puede crear tiendas en línea usando Magento y conectarlas con un sistema físico como POS (Punto de Venta) para controlar el inventario globalmente
  • Integre fácilmente con CRM (Gestión de relaciones con el cliente) o ERP (Planificación de recursos empresariales) sistemas back-end como Salesforce, Microsoft Dynamics u otro software de sonido
  • Ayuda a conectarse con el CMS (Content Management System)
  • También puede crear widgets de JavaScript en el backend de Magento (panel de administración) o en el escaparate de Magento

Primeros pasos: con Magento 2 Rest API

Para crear un rol de servicio web en Magento 2, siga estos sencillos pasos:

1.Inicie sesión en el Panel de administración de Magento 2.

2. Vaya a Sistema >> Funciones de usuario y haga clic en el botón Agregar nueva función .

Primeros pasos con las API web de Magento | Blog de Magento

3. Introduzca el nombre de la función .

Primeros pasos con las API web de Magento | Blog de Magento

4. En el campo Su contraseña , ingrese la contraseña actual de su administrador de Magento 2.

Primeros pasos con las API web de Magento | Blog de Magento

5.En el lado izquierdo, haga clic en Recursos de función. En Acceso a recursos, seleccione solo lo que se requiere para su servicio web.

Primeros pasos con las API web de Magento | Blog de Magento

6. Una vez hecho esto, presione Guardar rol.

Crear usuario de servicio web en Magento 2

Cree un nuevo usuario para el rol recién creado siguiendo estos pasos:

1. Vaya a Sistema >> Todos los usuarios y luego haga clic en Agregar nuevo usuario .

Primeros pasos con las API web de Magento | Blog de Magento

2. Ingrese la información requerida, incluido el nombre de usuario, nombre y apellido , correo electrónico y contraseña .

Primeros pasos con las API web de Magento | Blog de Magento

3. En el lado izquierdo, haga clic en Función de usuario y luego seleccione la función recién creada. Una vez hecho esto, haga clic en el botón Guardar usuario .

Primeros pasos con las API web de Magento | Blog de Magento

Autenticación de la API REST de Magento 2

Aquí, autenticaré la API REST a través del método de autenticación de token. Esto implica pasar un nombre de usuario y contraseña en la conexión inicial y recibir un token que se guardará en una variable para futuras llamadas.

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

Tenga en cuenta: el nombre de usuario y la contraseña se utilizan como ejemplo.

Obtenga módulos usando la API REST en Magento 2

Puede obtener datos utilizando la API REST de Magento 2. Aquí hay una lista completa de API REST para Magento EE y 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); ?>

En el código anterior, ya pasé el token (que se obtuvo anteriormente) con la URL de la API para instalar todos los módulos en la tienda Magento 2.

Aquí está el 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 servicios SOAP

Antes de entrar en los servicios SOAP, es importante conocer las convenciones de nomenclatura de Magento:

  • Tienes que usar CamelCase para los servicios de nombres. Por ejemplo, MiPrimerMódulo
  • Se omite la cadena "Servicio", lo que significa que no puede usarla.
  • El prefijo "Magento" y el sufijo "Interfaz" también se escalan.
  • Si el nombre de su 'servicio' es el mismo que el nombre del 'módulo', se omitirá el nombre del módulo.

Resumen de actualizaciones de MageWorx | Blog de MageWorx

Por lo tanto, asegúrese de tener en cuenta estos puntos.

Servicios SOAP—Autenticación usando Magento 2

Se puede acceder a los recursos SOAP mediante tokens de acceso OAuth a través de HTTP. La autenticación OAuth es similar al método del token, pero proporciona un arreglo más complejo. Los tokens de acceso son cadenas que representan una autorización de acceso emitida al cliente.

Aquí está el script PHP que explica cómo obtener un token de acceso:

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

Ultimas palabras

Este artículo describió los conceptos básicos de las API web de Magento, pero hay mucho más que puede aprender. Si desea una comprensión más firme del uso de la API de Magento 2, debe explorar cómo se integran los métodos en Magento 2 y en las extensiones de terceros. También debe comprender cómo pasar la información al sistema necesario.

¡Eso es todo!

Para experimentar un alojamiento Magento más rápido con tranquilidad, consulte esta prueba gratuita de 3 días en DigitalOcean, Vultr y Linode.