Como: Crear una llamada a la API REST de Magento 2
En esta página
Estos fragmentos de código te mostrarán cómo solicitar a la API REST de Magento2 y recuperar algunos datos.
En este ejemplo, consultaré a la API REST de Magento2 para recuperar todos los productos actualizados desde 2018-10-09 00: 00: 00.
Este método asume que:
- Estás usando un usuario admin para generar el token de autenticación.
- Tienes una instancia de Magento2 corriendo en tu entorno local.
Obteniendo el Token de Autenticación
Crea un archivo php con lo siguiente:
<?php
// URL de la API para autenticación
$apiURL = "https://magento2.test/index.php/rest/V1/integration/admin/token";
// Parámetros que pasan con URL
$data = ["username" => "admin", "password" => "magento123"];
$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, ["Content-Type: application/json", "Content-Length: " . strlen($data_string)]);
$token = curl_exec($ch);
// Decodificar el token generado y guardarlo en una variable
$token = json_decode($token);
echo 'Token es:' . $token . PHP_EOL;Luego ejecuta este archivo desde el terminal.
$ php magento_api_test.phpEsto se conectará a la instancia de Magento usando las credenciales del usuario administrador especificado para generar un token que usaremos más tarde para interactuar con la API REST.
La salida del comando anterior debería ser similar a esta:
$ Token es: xjggqmqgb7cdxcvy9svoo0dr0pee6ijgUsando el Token Generado
Elimina la línea echo y agrega lo siguiente a tu archivo php:
// Usando el token anterior en el encabezado
$headers = ["Authorization: Bearer " . $token];
// URL de API para obtener todos los productos con updated_at superior a una fecha
// /rest/V1/products?searchCriteria[filter_groups][0][filters][0][field]=updated_at&searchCriteria[filter_groups][0][filters][0][value]=2018-10-09%2000:00:00&searchCriteria[filter_groups][0][filters][0][condition_type]=gt&searchCriteria[pageSize]=1
$requestUrl = "https://magento2.test/rest/V1/" .
"products?" .
"searchCriteria[filter_groups][0][filters][0][field]=updated_at&" .
"searchCriteria[filter_groups][0][filters][0][value]=2018-10-09%2000:00:00&" .
"searchCriteria[filter_groups][0][filters][0][condition_type]=gt&" .
"searchCriteria[pageSize]=10&";
$ch = curl_init($requestUrl);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
// Resultado de decodificación
$result = json_decode($result);
// Imprimiendo el resultado
var_dump($result);Enlaces relacionados: