En este blog, aprenderemos cómo podemos crear un recurso de servicio web y asignar permiso a este recurso usando código en PrestaShop 1.7.
A veces no tenemos acceso a la pestaña de servicios web dentro de Parámetros avanzados > Servicio web. Entonces podemos administrar cosas relacionadas con servicios web usando código. Entendamos las cosas usando código.
Paso 1:
Como sabemos, si queremos agregar un nuevo recurso de servicio web en PrestaShop 1.7, entonces debemos registrar un enlace.
$this->registerHook('addWebserviceResources');
Paso 2:
Después de esto, necesitamos registrar un recurso usando este enlace.
/** * Add a specific_management resource * This hook is only in PS17 * * @param array $resources * @return void */ public function hookAddWebserviceResources($params) { $params['resources']['RESOURCE_NAME'] = array('description' => 'RESOURCE_DESCRIPTION'); return $params['resources']; }
Si el recurso está relacionado con una gestión específica, siga el siguiente código.
public function hookAddWebserviceResources($params) { $params['resources']['RESOURCE_NAME'] = array('description' => 'RESOURCE_DESCRIPTION', 'specific_management' => true); return $params['resources']; }
Paso 3:
Ahora necesitamos agregar código personalizado en su función de instalación para administrar las cosas en tiempo de ejecución mientras instala el módulo.
public function install() { if (!parent::install() || !$this->registerHook('addWebserviceResources') ) { return false; } Configuration::updateValue('PS_WEBSERVICE', 1); // Code added to enable prestashop webservice $apiAccess = new WebserviceKey(); $apiAccess->key = $this->generateWebserviceKey(32); // Function to generate 32 character alphanumeric ws key $apiAcesss->save(); $account_id = $apiAccess->id; $permissions = array( 'RESOURCE_NAME' => ['GET' => 1, 'POST' => 1, 'PUT' => 1, 'DELETE' => 1, 'HEAD' => 1] ); $response = WebserviceKey::setPermissionForAccount($apiAccess->id, $permissions); return true; } // Custom function to generate 32 character alphanumeric ws key function generateWebserviceKey($length) { $key = ''; $keys = array_merge(range(0, 9), range('a', 'z')); for ($i = 0; $i < $length; $i++) { $key .= $keys[array_rand($keys)]; } return strtoupper($key); }
Ahora verá que la clave y el permiso del servicio web se crean automáticamente cuando instalamos el módulo.
Eso es todo sobre este blog. Espero que te ayude.
Si tiene algún problema o tiene alguna duda sobre el proceso anterior, no dude en contactarnos a través de la sección de comentarios.
Además, puede explorar nuestros Servicios de desarrollo PrestaShop y una amplia gama de módulos PrestaShop de calidad.
Para cualquier duda contacta con nosotros en [email protected]
Source link