Advertisement
  1. Code
  2. Magento

Crear una API personalizada en Magento: Segunda parte

Scroll to top
Read Time: 4 min
This post is part of a series called Create a Custom API in Magento.
Create a Custom API in Magento: Part One
This post is part of a series called Create a Custom API in Magento.
Create a Custom API in Magento: Part One

Spanish (Español) translation by steven (you can also view the original English article)

En esta serie, estamos hablando sobre las API personalizadas en Magento.

En la primera parte, creamos un módulo personalizado completo para implementar la API personalizada, en el que creamos los archivos necesarios para conectar las API personalizadas proporcionadas por nuestro módulo.

En esta segunda y última parte, veremos la sección de back-end para demostrar cómo consumir las API.

Resumen rápido

Hagamos un resumen rápido de la primera parte. Aquí está la lista de archivos que ya hemos creado:

  • app/etc/modules/Envato_All.xml: Es un archivo utilizado para habilitar nuestro módulo personalizado.
  • app/code/local/Envato/Customapimodule/etc/config.xml: Es un archivo de configuración del módulo.
  • app/code/local/Envato/Customapimodule/etc/api.xml: Es un archivo que declara las API proporcionadas por nuestro módulo.
  • app/code/local/Envato/Customapimodule/etc/wsdl.xml: En este archivo, definiremos los métodos API según la convención de WSDL.
  • app/code/local/Envato/Customapimodule/Helper/Data.php: Es un archivo utilizado por el sistema de traducción en Magento.
  • app/code/local/Envato/Customapimodule/Model/Product/Api.php: Es un archivo modelo que implementa la lógica para nuestros métodos API.
  • app/code/local/Envato/Customapimodule/Model/Product/Api/V2.php: Es un archivo compatible con la API v2 de Magento.

Además, si ya has habilitado nuestro módulo personalizado, deberías ver que nuestro método de API "customapimoduleProductList" aparece junto con las otras API cuando visitas la página http://yourmagentostore/api/v2_soap?wsdl=1 que enumera todas las API disponibles en Magento.

Magento admite "Roles API" y "Usuarios API". Necesitamos "Roles API" ya que no deseas permitir que el usuario acceda a todos y cada uno de los API de Magento. Los "Roles API" se utilizan para crear roles con permisos de acceso limitados a los recursos de la API.

Por ejemplo, podrías crear una función que solo permita el acceso de solo lectura a las API de "Listado de productos". Por otro lado, puedes crear un rol que permita la modificación del catálogo, ¡y solo se asignará a los usuarios "autorizados"!

Configurar "Usuarios en la API" y "Roles en la API" desde el back-end

En esta sección, crearemos una "Función API" y un "Usuario API" de demostración. Más adelante, los utilizaremos para consumir las API personalizadas proporcionadas por nuestro módulo. ¡Dirígete al back-end de Magento!

Configurar un rol para la API

Ve a Sistema > Servicios web > Roles (SOAP / XMLRPC). Haz clic en Agregar nuevo rol para crear un nuevo rol. En la pestaña Información del rol, he ingresado "Demo SOAP Role" en el campo Nombre del rol.

Add New Role - Role InfoAdd New Role - Role InfoAdd New Role - Role Info

A continuación, en la pestaña Recursos de roles, verás los diferentes recursos con casillas de verificación. Haz clic en la casilla de verificación Productos > Datos del producto. Significa que "Demo SOAP Role" solo puede acceder a las API de recursos "Datos del producto". Haz clic en el botón Guardar rol para guardar la información del rol.

Add New Role - ResourcesAdd New Role - ResourcesAdd New Role - Resources

Configurar un usuario para la API

Ahora, creemos un usuario en la API y asignemos el rol "Demo SOAP Role" a ese usuario. Ve a Sistema > Servicios web > Usuarios (SOAP / XMLRPC). Haz clic en Agregar nuevo usuario para crear un nuevo usuario. En la pestaña Información de usuario completa la información requerida.

Add New User - User InfoAdd New User - User InfoAdd New User - User Info

Además, en la pestaña Rol de usuario, selecciona el botón de tipo radio Demo SOAP Role. Haz clic en el botón Guardar usuario para guardar la información del usuario.

Add New User - User RoleAdd New User - User RoleAdd New User - User Role

Así que eso es todo: ¡hemos configurado el rol y el usuario respectivamente para acceder a las API de Magento!

Cómo consumir la API de Magento

En esta sección, veremos cómo llamar a las API de Magento. Debajo de la raíz del documento, crea un archivo PHP de ejemplo y llénalo con los siguientes contenidos.

1
<?php
2
// v2 call

3
$client = new SoapClient('http://www.yourmagentostore.com/api/v2_soap/?wsdl=1');
4
$session = $client-­>login('soapuser', 'soapuser');
5
$result = $client-­>customapimoduleProductList($session);
6
$client-­>endSession($session);
7
echo '<pre>';
8
print_r($result);
9
10
11
// v1 call

12
$client = new SoapClient('http://www.yourmagentostore.com/api/soap/?wsdl=1');
13
$session = $client-­>login('soapuser', 'soapuser');
14
$result = $client-­>call($session, 'product.list', array(array()));
15
$client-­>endSession($session);
16
echo '<pre>';
17
print_r($result);

Cambia "http://www.yourmagentostore.com" a la URL de tu tienda Magento. Como mencioné anteriormente, Magento admite dos versiones de las API, v1 y v2. En este ejemplo, he demostrado las dos formas.

En el modo v2 de la API, primero creamos una nueva instancia de la clase "SoapClient". A continuación, llamamos al método de "inicio de sesión" para iniciar sesión en la tienda Magento; por supuesto, tendremos que proporcionar el nombre de usuario y la contraseña del "Usuario API" creado en la sección anterior. Finalmente, llamamos al método "customapimoduleProductList" para recuperar la lista de productos. La variable $session se pasa como un parámetro de entrada al método para reclamar la autenticidad del método. Una cosa importante a tener en cuenta aquí es que "customapimoduleProduct" es el prefijo del recurso y "list" es el nombre del método.

En el modo v1 de la API, la única parte diferente es la llamada del método API. Estamos utilizando un método genérico de "llamada", en el que se pasan como argumentos un "nombre del método" y otros parámetros. Como puedes ver, "product" se usa como un prefijo del recurso y "list" es el nombre del método.

Conclusión

¡Eso resume la serie! ¡Ahora deberías sentirte cómodo con las API de Magento, y puedes crear API's personalizadas según tus necesidades! ¡No dudes en enviar tus sugerencias y comentarios!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.