La API está creada para crear integraciones con otras aplicaciones de forma rápida y sencilla. La API de Magento permite a los desarrolladores crear el proceso de integración más fácilmente con datos personalizados y menos complejidad. Con cambios rápidos y ahorrando tiempo al desarrollador, la estructura de la API de Magento 2 proporciona la estructura de URL configurable, parámetros y respuestas predecibles para crear la integración.
El ecosistema del marco API de Magento pretende evolucionar con la web y resolver problemas complejos incorporados al mundo del comercio electrónico, como la comunicación en tiempo real, los datos personalizados con puntos finales, la venta de productos multicanal y mucho más.
La API de Magento 2 es una parte fundamental para crear integraciones con servicios de terceros. Todos los elementos deben configurarse en el archivo webapi.xml para configurar y comprender la API web. Para realizar integraciones sólidas, la API de Magento 2 ayuda a los desarrolladores a personalizar fácilmente la estructura de la llamada a la API. En Magento 2, la API REST es la forma más común para que los desarrolladores obtengan una respuesta del protocolo HTTP, pero primero, vamos a entender la API de Magento 2 y su necesidad.
¿Qué es la API de Magento 2?
El marco API de Magento 2 permite a los desarrolladores crear nuevos servicios para comunicarse con otras tiendas y aplicaciones Magento 2. Toda la API de Magento admite servicios web REST y SOAP y se basa en operaciones CRUD (Crear, Leer, Actualizar, Eliminar) y un modelo de búsqueda. En primer lugar, tenemos que entender la API RESTFul de Magento, un estilo arquitectónico para la comunicación entre aplicaciones con recursos limitados al usuario.
Dada la importancia de la API REST en las aplicaciones web, es sorprendente que muchos desarrolladores de Magento se pregunten: ¿Qué es la API REST de Magento 2?
El marco de la API REST de Magento 2 comprueba primero si la llamada tiene la autorización adecuada para realizar la solicitud. El marco de la API también admite el filtrado de campos de las respuestas de la API para preservar el ancho de banda celular.
Los desarrolladores utilizan las API REST de Magento 2 para una amplia gama de tareas. Por ejemplo, puedes crear una aplicación de compras e integrarla con tu tienda Magento 2. También puedes crear una aplicación web que tus empleados puedan utilizar para ayudar a los clientes a realizar compras. Con la ayuda de las API, puedes integrar tu tienda Magento 2 con CRM, ERP o sistemas POS.
Veamos qué implica la API REST de Magento 2, cómo utilizarla y cómo crear una API REST personalizada en Magento 2 basada en el modelo.
Experimenta la Tienda Demo Magento 2 de Cloudways – ¡No necesitas conocimientos técnicos!
Experimenta una tienda Magento 2 totalmente funcional construida sobre el renombrado alojamiento Cloudways para ofrecer las velocidades más rápidas.
Uso de la API REST de Magento 2
La API REST de Magento 2 tiene un conjunto predefinido de funciones que el desarrollador utilizará para realizar peticiones y obtener respuestas utilizando el protocolo HTTP. Pero para eso, necesitas entender el flujo para llamar a las API.
La estructura de la API REST para iniciar la petición HTTP incluye los siguientes elementos:
- Un encabezado HTTP: Determina la autenticación
- Verbo HTTP: Define la acción que debe realizar el endpoint, como GET, POST, PUT y DELETE
- Punto final: Un identificador uniforme de recursos (URI) para identificar el servidor, los servicios web y la información de recursos.
- Carga útil de la llamada: Conjunto de parámetros de entrada y atributos proporcionados con la solicitud, opcionales u obligatorios.

Autenticación de la API REST de Magento
Por el momento, Magento 2 utiliza los tres métodos de autenticación siguientes, descritos en la documentación de la API REST de Magento 2.
- Autenticación basada en tokens para autenticar aplicaciones móviles.
- Autenticación de administradores y clientes con credenciales de acceso.
- Autenticación OAuth para aplicaciones de terceros.
Según la documentación de la API de Magento 2, estos métodos de autenticación sólo pueden acceder a los recursos asignados. Antes de empezar a utilizar la API REST de Magento 2, tienes que autenticar la identidad del usuario y los permisos para acceder a la API. Los permisos necesarios para acceder a determinados recursos se configuran en el archivo webapi.xml. Los clientes tienen el mismo conjunto de permisos para la respuesta. La API de Magento 2 presenta los tipos de usuario con el conjunto de permisos contenido, que incluye:
Tipo de usuario
- Administración o Integración;
- Cliente;
- Usuario invitado.
¡Optimiza tu integración con la API de Magento 2!
Simplifica la integración de tu API de Magento 2 con Cloudways, la plataforma de alojamiento de confianza.
Autenticación basada en tokens de la API de Magento 2
Para realizar una llamada a la API de Magento 2 para extraer la información deseada, la clave de acceso a la API debe ser un token de acceso.
Si quieres utilizar la API de Magento 2 basada en token, primero tendrás que autenticarte y obtener el token de Magento 2. Después, tendrás que pasarlo en la cabecera de cada solicitud que realices.
Para empezar con la API REST de Magento 2 utilizando la autenticación basada en token, tendrás que verificar que la persona que inicia la solicitud está autorizada para la llamada. También utilizaré esta API REST en este tutorial para crear un producto sencillo y el módulo personalizado de la API REST de Magento.
Obtener el token de autorización de administrador
Como he mencionado antes, autenticaré la API REST mediante autenticación por token. Esto significa que pasaré un nombre de usuario y una contraseña de administrador en la conexión inicial y recibiré el token. Este token se guardará y se pasará posteriormente en la cabecera para posteriores llamadas.
Si no quieres utilizar el nombre de usuario y la contraseña de admin, puedes crear otra cuenta de usuario nueva con recursos asociados sólo para servicios web.
Crear un Usuario de Servicios Web en Magento Admin
Si la autenticación que utilizas está basada en token, selecciona Sistema → Permiso → Todos los usuarios → Añadir nuevo usuario. Crear el nuevo usuario en el Admin es innecesario con las dos autenticaciones restantes.
Punto final
POST <alberga>/rest/<código_tienda>/V1/integration/admin/token
Ejemplo
http://magento-91647-257956.cloudwaysapps.com/index.php/rest/V1/integration/admin/token
Cabeceras
Content-Type application/json
Carga útil
{
"nombre de usuario": "[email protected]",
"contraseña": "FBxftRsYrqN6Ka"
}
Respuesta
Magento devuelve el token de acceso del administrador.

En la API anterior, pasé el nombre de usuario y la contraseña con la URL de la API para autenticar la API REST y luego guardé este token para su uso posterior. Más adelante tendrás que especificar este token en la cabecera de autorización de cada llamada que requiera permisos de administrador.
Obtener el token de acceso del cliente mediante la API Rest
La API REST de Magento 2 puede autenticarse por tipo de usuario cliente, como ya se ha mencionado. Al igual que el token de administrador de Magento, para procesar la solicitud relacionada con las actividades del cliente, como editar la información de la cuenta, se requiere el token de acceso del cliente.
Los desarrolladores pueden utilizar tokens generados por el cliente para implementar la funcionalidad a nivel de cliente mientras desarrollan la aplicación. Para conseguirlo, el autor de la llamada debe pasar el nombre de usuario y la contraseña a la solicitud.
Punto final
POST <alberga>/rest/<código_tienda>/V1/integration/customer/token
Ejemplo
http://magento-91647-257956.cloudwaysapps.com/index.php/rest/V1/integration/customer/token
Cabeceras
Content-Type application/json
Carga útil
{
"nombre de usuario": "[email protected]",
"contraseña": "Pa$$w0rd!"
}

Respuesta
La respuesta devolverá el token de acceso del cliente de Magento 2.
Cómo obtener la API Rest de usuario invitado anónimo
La autenticación basada en tokens actúa como una capa de seguridad para superar los ataques de vulnerabilidad en cualquier aplicación mediante la concesión de permisos. El marco de la API REST de Magento 2 para el usuario invitado está configurado para los recursos de código abierto que no autenticaron los permisos para acceder a la llamada de solicitud de la API.
Por defecto, en Magento 2, los usuarios invitados con permisos anónimos acceden a la lista de puntos finales no autenticados. Los desarrolladores pueden desactivar este privilegio desde el Panel de Administración, inicia sesión en el administrador y ve a Tiendas → Ajustes → Configuración → Servicios → API Web de Magento → Seguridad de la API Web. A continuación, selecciona Sí en el menú Permitir acceso anónimo de invitados.

Token OAuth API REST Magento 2
La API Rest de Magento 2 se integra con aplicaciones o servicios de terceros utilizando la autorización de token OAuth. La autenticación OAuth en Magento procesa la integración asociada a los recursos necesarios.
El servicio de terceros se configura en Magento seleccionando Sistema → Extensiones → Integraciones. La configuración incluye una URL de devolución de llamada y una URL de enlace de identidad. La URL de devolución de llamada especifica dónde se pueden enviar las credenciales OAuth cuando se utiliza OAuth para el intercambio de tokens. El enlace de identidad apunta a la página de inicio de sesión de la aplicación de terceros que se está integrando con Comercio.

Llamar a la API REST de Magento
Esta sección explicará cómo llamar a una API REST predeterminada de Magento para crear un producto.
Crea un producto sencillo
Punto final
POST <alberga>/rest/V1/products
Ejemplo
http://magento-761105-2575467.cloudwaysapps.com/index.php/rest/V1/products
Autorización de cabecera
En la cabecera Autorización
Autorización
Portador de tu ficha
Ficha
Generado por la API Rest del token admin
Tipo de contenido
aplicación/json
Carga útil
Introduce la carga útil en la sección del cuerpo
{
"producto": {
"sku": "VBP_001",
"nombre": "Mochila Vintage",
"atributo_set_id": 9,
"precio": 32,
"estado": 1,
"visibilidad": 1,
"type_id": "simple",
"peso": "30",
"atributos_extensión": {
"enlaces_categoría": [
{
"posición": 0,
"category_id": "11"
},
{
"posición": 1,
"category_id": "12"
},
{
"posición": 2,
"category_id": "16"
}
],
"stock_item": {
"cantidad": "100",
"is_in_stock": true
}
},
"atributos_personalizados": [
{
"código_atributo": "descripción",
"valor": "La Mochila Vintage es una mochila pesada de lona de algodón lavado con un gran compartimento principal, un bolsillo frontal y dos bolsillos laterales."
},
{
"código_atributo": "tax_class_id",
"valor": "2"
},
{
"código_atributo": "color",
"valor": "42"
},
{
"código_atributo": "tamaño",
"valor": "20"
}
]
}
}
Respuesta
{
"id": 2047,
"sku": "VBP_001",
"nombre": "Mochila Vintage",
"atributo_set_id": 9,
"precio": 32,
"estado": 1,
"visibilidad": 1,
"type_id": "simple",
"fecha_creada": "2022-07-04 22:02:50",
"fecha_actualizada": "2022-07-04 22:03:02",
"peso": 30,
"atributos_extensión": {
"website_ids": [
1
],
"enlaces_categoría": [
{
"posición": 0,
"category_id": "11"
},
{
"posición": 1,
"category_id": "12"
},
{
"posición": 2,
"category_id": "16"
}
],
"stock_item": {
"item_id": 2047,
"product_id": 2047,
"stock_id": 1,
"cantidad": 100,
"is_in_stock": true,
"is_qty_decimal": false,
"mostrar_mensaje_notificacion_por_defecto": false,
"use_config_min_qty": true,
"min_cantidad": 0,
"use_config_min_sale_qty": 1,
"min_cantidad_de_venta": 1,
"use_config_max_sale_qty": true,
"cantidad_máxima_venta": 10000,
"use_config_backorders": true,
"pedidos pendientes": 0,
"use_config_notify_stock_qty": true,
"notificar_cantidad_stock": 1,
"use_config_qty_increments": true,
"cantidad_incrementos": 0,
"use_config_enable_qty_inc": true,
"enable_qty_increments": falso,
"use_config_manage_stock": true,
"gestionar_stock": true,
"fecha_stock_baja": nulo,
"es_decimal_dividido": false,
"stock_status_changed_auto": 0
}
},
"opciones": [],
"media_gallery_entries": [],
"atributos_personalizados": [
{
"código_atributo": "contenedor_opciones",
"valor": "contenedor2"
},
{
"código_atributo": "msrp_display_actual_price_type",
"valor": "0"
},
{
"código_atributo": "url_key",
"valor": "mochila-vintage"
},
{
"código_atributo": "opciones_requeridas",
"valor": "0"
},
{
"código_atributo": "tiene_opciones",
"valor": "0"
},
{
"código_atributo": "tax_class_id",
"valor": "2"
},
{
"código_atributo": "category_ids",
"valor": [
"11",
"12",
"16"
]
},
{
"código_atributo": "descripción",
"valor": "La Mochila Vintage es una mochila pesada de lona de algodón lavado con un gran compartimento principal, un bolsillo frontal y dos bolsillos laterales."
},
{
"código_atributo": "tamaño",
"valor": "20"
},
{
"código_atributo": "color",
"valor": "42"
}
]
}

Verifica los resultados
Ve al Panel de Administración y navega hasta Catálogo → Productos. Verás el producto recién creado en la parrilla de productos. Si no hay resultados, busca con el nombre del producto.

Crear un módulo personalizado de API REST
Aunque Magento 2 proporciona numerosos puntos finales REST, consulta la lista de Puntos finales por módulo para gestionar y controlar los datos personalizados de tu aplicación; puede que estas API REST no encajen bien. Por lo tanto, debes crear la API REST personalizada de Magento con datos y valores. Explicaré toda la información necesaria en sencillos pasos.
Paso 1: Crear módulo personalizado de API Rest
Crearemos Cloudways_RestApi como espacio de nombres para este tutorial. Crea los archivos module.xml y registration.php con la siguiente estructura.
app/code/Cloudways/RestApi/etc/module.xml
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Cloudways_RestApi" setup_version="1.0.0" /> </config>
app/code/Cloudways/RestApi/registration.php
<php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, Cloudways_RestApi', __DIR__ );
Paso 2: Definir punto final personalizado
Para definir puntos finales personalizados, necesitamos configurar un servicio API web, crear webapi.xml como se describe en app/code/Cloudways/RestApi/etc/webapi.xml
<?xml version="1.0"?>
<rutas xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../app/code/Magento/Webapi/etc/webapi.xsd">
<route method="POST" url="/V1/rest_dev/custom-api/">
<service class="Cloudways\RestApi\Api\CustomInterface" method="getData" />
<recursos>
<recurso ref="anónimo"/>
</resources>
</route>
</routes>
Paso 3: Configurar la dependencia
El archivo di.xml carga las dependencias inyectadas con el Gestor de Objetos y crea el di.xml descrito en app/code/Cloudways/RestApi/etc/di.xml para configurar la interfaz.
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Cloudways\RestApi\Api\CustomInterface" type="Cloudways\RestApi\Model\Api\Custom"/>
</config>
Paso 4: Crear interfaz
Para esta API Rest de Magento 2, he creado la interfaz para la solicitud en app/code/Cloudways/RestApi/Api/CustomInterface.php
<php
namespace Cloudways\RestApi\Api;
interfaz CustomInterface
{
/**
* GET para Post api
* @param cadena $valor
* @devuelve cadena
*/
función pública obtenerDatos($valor);
}
Paso 5: Crear un modelo
Los modelos son las clases que implementan la funcionalidad de la interfaz y procesan los datos. En la API REST de Magento 2, creo el modelo para implementar la función getData de la interfaz para que responda y proporcione los datos solicitados para la petición dada.
<?php
namespace Cloudways\RestApi\Model\Api;
utiliza Psr\Log\LoggerInterface;
clase Personalizado
{
protegido $logger;
función pública __construct(
LoggerInterface $logger
)
{
$this->logger = $logger;
}
/**
* @inheritdoc
*/
función pública obtenerDatos($valor)
{
$respuesta = ['éxito' => falso];
prueba {
// Implementa aquí tu código
$respuesta = ['éxito' => true, 'mensaje' => $valor];
} catch (\Exception $e) {
$respuesta = ['éxito' => false, 'mensaje' => $e->getMessage()];
$this->registrador->info($e->getMessage());
}
$retornoArray = json_encode($respuesta);
devuelve $retornoMatriz;
}
}
Paso 6: Prueba tu API Rest personalizada de Magento 2
Por último, ejecuta el comando de actualización utilizando la CLI y, a continuación, prueba tu llamada a la API REST de Magento 2. En este ejemplo, probaremos el endpoint con Postman.
Solicita
Punto final GET
http://magento-761105-2575467.cloudwaysapps.com/index.php/rest/V1/rest_dev/custom-api
Respuesta
{
"éxito":verdadero,
"mensaje": "Esta es la cadena de prueba proporcionada"
}
Carga útil
{
"valor": "Esta es la cadena de prueba proporcionada"
}

Resumen
Preguntas frecuentes
Q. ¿Cómo crear un rol de servicio web en Magento 2?
A. Para crear un rol de servicio web en Magento 2, sigue estos pasos:
- Accede al panel de administración de Magento 2.
- Ve a Sistema → Roles de Usuario y pulsa en Añadir Nuevo Rol
- Introduce el Nombre del rol.
- En el campo Tu contraseña, introduce la contraseña actual de tu Admin de Magento 2.
- Ahora, en el lado izquierdo, haz clic en Recursos de rol.
- En el Acceso a recursos, selecciona sólo los que sean necesarios para tu servicio web.
- Una vez hecho esto, pulsa el botón Guardar función
Q. ¿Cómo crear un usuario de servicio web en Magento 2?
A. Ahora, crea un nuevo usuario para el rol recién creado siguiendo estos pasos:
- Ve a Sistema → Todos los Usuarios y pulsa Añadir Nuevo Usuario
- Introduce la información necesaria, como el nombre de usuario, nombre y apellidos, correo electrónico, contraseña, etc.
- Ahora, en la parte izquierda, haz clic en Rol de usuario y selecciona el rol recién creado.
- Una vez hecho esto, haz clic en Guardar usuario
Jyotishna Kumari
Jyotishina es Experta de la Comunidad Magento en Cloudways y tiene 4 años de experiencia en desarrollo web. Ha trabajado en sitios de comercio electrónico desde el cambio de milenio y ya trabajaba con Magento antes de que se lanzara la versión 1. Le encanta viajar y explorar nuevas ideas siempre que tiene tiempo. Ponte en contacto con ella en [email protected].