No es una sorpresa para todos que la API de Magento 2 se utilice para la comunicación de servicios de terceros con la plataforma Magento. A pesar de que este tema se considera ampliamente en la comunidad de Magento, todavía hay preguntas sobre el uso de la API.
Este artículo explicará sus primeros pasos para usar la API de Magento 2. La API le permite acelerar la obtención, el envío y el procesamiento de datos, ya sean productos, clientes (API de clientes de Magento)
o pedidos , y también transferirlos al sistema de terceros (cualquier software para la gestión de existencias, gestión de proyectos, etc.). Obviamente, la transferencia automática de datos es mucho más rápida y sencilla que la exportación e importación manual.
La primera parte del artículo habla sobre la configuración general de la API de Magento 2, y la segunda parte es más práctica, explicando la forma de usar la API a través de Swagger, que es la herramienta básica para verificar los métodos de la API.
Este artículo será útil para aquellos usuarios de Magento que posean conocimientos básicos de desarrollo y deseen explorar la parte avanzada de Magento, y también para los desarrolladores junior de Magento 2. Aquí puede encontrar la lista completa de información de la API REST de Magento 2.
→ Vea qué API de soporte de extensiones de Amasty
Cómo funciona la API de Magento 2
Magento 2 es compatible con REST (Transferencia de estado representacional) y SOAP (Protocolo simple de acceso a objetos), como en las versiones anteriores de Magento. Nos referiremos más a la integración de la API REST, ya que es menos estricta que la API SOAP.
Para poder acceder al marco de API, debemos indicar la URL en webapi.xml (ruta: /vendor///etc/webapi.xml) y determinar los servicios y métodos disponibles para futuras solicitudes de API.
Una vez que se definió la clase de servicio en el archivo webapi.xml, el sistema hace que el método de servicio se represente sobre la marcha en la API web.
Debido al hecho de que se forma automáticamente, es esencial que la clase de servicio se formatee de una manera particular.
Cada llamada a la API de Magento se incorpora con una secuencia de elementos, como:
- Verbos HTTP , que son acciones ejecutadas contra el punto final. Esos son GET, PUT, POST, DELETE.
- Endpoint, que significa URL que define el servidor, el servicio web, el recurso con el que se ejecutó la solicitud y el parámetro de la plantilla.
- La carga útil de la llamada contiene todos los atributos de entrada y los parámetros proporcionados con la solicitud. La entrada de operaciones API puede ser tanto obligatoria como opcional. Se pueden indicar parámetros de entrada en el URI y atributos de entrada en el cuerpo de la solicitud. Es posible utilizar un cuerpo de solicitud con formato JSON o XML.
- El encabezado HTTP muestra la información del cuerpo de la solicitud y la respuesta, la autorización de la solicitud, el almacenamiento en caché de la respuesta y las cookies. Significa representación de metadatos y está conectado con la solicitud y respuesta de la API.
Magento 2 utiliza la herramienta Swagger integrada (que se envía con cada instancia de Magento 2) para la generación inmediata de documentación API REST.
La característica distintiva de esta herramienta es que demuestra los métodos disponibles para su instancia particular de Magento, por lo que es una especie de ventaja para tener siempre acceso a información actualizada en su sitio web.
Otra característica llamativa de Swagger es la ejecución de puntos finales directamente desde el navegador, por lo que siempre puede verificar cuáles son los valores devueltos.
¿Qué pasa con la URL de la API REST de Magento 2? Para poder usar swagger, debe agregar «swagger» a la URL de su sitio web, por ejemplo:
http://abc.com/swagger
Una vez que sea redirigido a la página de swagger, podrá ver todos los métodos disponibles para el usuario invitado.
Tipos de usuarios de la API de Magento 2 y creación de una nueva integración
Aquí debemos dirigir nuestra atención al hecho de que hay tres tipos de usuarios que tienen acceso a la API en Magento y esos son:
1) Usuario invitado , con acceso a los recursos con permisos anónimos.
2) Administrador con acceso a los recursos permitidos por la configuración del administrador.
Para poder usar los métodos disponibles para el usuario administrador, debe continuar con la autenticación con la ayuda de la clave API para obtener acceso al conjunto completo de puntos finales.
Esto se puede hacer a través del punto final de IntegrationAdminTokenServiceV1:
Deberá indicar el nombre de usuario y la contraseña y hacer clic en el botón «Pruébelo». El valor devuelto debe pegarse en el campo api_key:
Para crear una nueva integración, vaya a Sistema >> Extensiones >> Integración >> Agregar nueva integración.
En la pestaña «Información de integración», debe especificar el nombre, el correo electrónico, la URL de devolución de llamada y la URL del enlace de identidad, lo que hace que el usuario sea redirigido para vincular su cuenta de terceros con los detalles de acceso a la integración de Magento.
En la pestaña «API», debe seleccionar Todos o Acceso personalizado a los recursos, según la funcionalidad que desee que esté disponible para el usuario.
Una vez que se apliquen todos los cambios, debe ingresar su contraseña de administrador actual y hacer clic en «Guardar». Para continuar usando la integración, haga clic en Activar y confirme su elección.
3) Cliente con permisos propios o anónimos de acceso a los recursos.
Tipos de autenticación de la API de Magento 2
Hay tres tipos de autenticación que podemos utilizar:
1) Autenticación basada en token.
La idea es proporcionar el nombre de usuario y la contraseña durante la conexión inicial y recibir el token que se utilizará para las solicitudes posteriores, hasta que expire el token.
Puede usar curl para obtener el token y luego enviar una solicitud con este token para obtener la información necesaria.
Por ejemplo:
Recibirá un token que se verá como `bnkte0ubwdbnqebyfct29pq0hg1vpu0t` y luego todas las consultas deben contener este token. Por ejemplo, obtengamos cms blog por ID:
Obtendrá la siguiente respuesta:
Además, puede usar SOAP para obtener los mismos datos.
Las solicitudes SOAP recibirán un token de autorización y devolverán una función para obtener los módulos habilitados.
2) Autenticación basada en sesión , que es la más sencilla.
Brevemente, el marco API de Magento 2 utiliza la sesión de usuario para la autorización de acceso a recursos solicitada.
Por ejemplo, cree un usuario frontend, inicie sesión y apunte su navegador a esta página: http://magento.m2/rest/V1/customers/me
Como cliente, estará autorizado a acceder a los recursos con permiso propio y anónimo. Sin embargo, también funciona para las cuentas de administrador si intenta acceder a un recurso para el que su cuenta de administrador tiene permiso.
3) Autenticación basada en OAuth , que presenta la API de Magento 2 como un servicio para el acceso a recursos de terceros mediante la obtención de la aprobación de los propietarios de los recursos.
Para procesar con OAuth, debe seguir los pasos a continuación:
- Ingrese Magento Admin y navegue hasta Sistema >> Extensiones >> Integraciones >> Agregar nueva integración.
- Complete los detalles en la pestaña Información de integración, por ejemplo:
- Nombre: SomeUniqueIntegrationName
- URL de devolución de llamada: http://your_app_host/endpoint.php
- URL del enlace de identidad: http://your_app_host/login.php
- Agregue los permisos requeridos en la pestaña API
Después de hacer clic en Guardar y activar, verá una ventana emergente, donde deberá confirmar los permisos de la API. Los detalles de acceso se publican en endpoint.php.
Verá una ventana emergente más que inicia la identificación que abre un script de login.php.
Cuando hace clic en «Iniciar sesión», está llamando al script checklogin.php que utiliza los detalles de acceso publicados para finalizar el intercambio de tokens. Cuando el intercambio de tokens se haya completado con éxito, se le redirigirá de nuevo a la cuadrícula «Integraciones». Esta nueva integración se mostrará con el estado Activo.
Si hace clic en la etiqueta «Editar» y verifica los detalles de integración, podrá ver los detalles de acceso que se pueden usar para realizar una llamada API autenticada a través de Oauth.
ejemplo checklogin.php:
ejemplo de endpoint.php:
ejemplo de inicio de sesión.php:
Ejemplo de OauthClient.php:
¡Esa es una envoltura por hoy! Ahora, si desea continuar con el uso de la API de Magento 2, puede verificar qué métodos están integrados en Magento 2 y extensiones de terceros para saber cómo pasar la información al sistema necesario.
¿Tiene alguna pregunta en este punto? Siéntete libre de preguntarles en la sección de comentarios.