Creación de custom services

June 18, 2021

Tags: IT Staff ES 2024
Share

Table of contents

Quick Access

web services

 

Los web services son una manera en la que podemos proveer información a un dispositivo a través de una conexión a Internet. Esto incluye, por ejemplo, listas de contenidos, entidades, usuarios, entre otros. En esta ocasión, vamos a crear un módulo personalizado para Drupal, al que le definiremos un servicio para devolver un listado de usuarios.

 

Archivos del Módulo

1. rootstack_services_custom.info
Este archivo define la información básica sobre el módulo:

 
name = Rootstack Custom services description = My custom Rootstack Drupal module service. package = Rootstack core = 7.x dependencies[] = services dependencies[] = rest_server 

 

2. rootstack_services_custom.module
Este archivo implementa los permisos del módulo:

 
/** * Implements hook_permission(). */ function rootstack_services_custom_permission() {  return array(    'rootstack get users' => array(      'title' => t('Retrieve a list of users.'),    ),  ); } 

 

3. rootstack_services_custom.services.inc
Este archivo contiene la implementación de los recursos de servicio:

 
/** * Implementation of hook_services_resources(). */ function rootstack_services_custom_services_resources() {  return array(    'rootstack_services_users' => array(      'retrieve' => array(        'file' => array(          'type' => 'inc',          'module' => 'rootstack_services_custom',          'name' => 'rootstack_services_custom.resources',        ),        'help' => t('Gets a count of users.'),        'callback' => 'rootstack_services_custom_get_user',        'args' => array(          array(            'name' => 'uid',            'type' => 'string',            'optional' => TRUE,            'source' => array('param' => 'uid'),            'description' => t('User ID.'),          ),        ),        'access arguments' => array('rootstack get users'),      ),    ),  ); } 

 

4. rootstack_services_custom.resources.inc
Este archivo contiene la función de callback para recuperar el listado de usuarios:

/** * Callback function for retrieve list of users. */ function rootstack_services_custom_get_user($uid) {  $query = db_select('users', 'f');  $query->fields('f', array('name', 'mail'));  if ($uid) {    $query->condition('f.uid', $uid, '=');  }  return $query->execute()->fetchAll(); } 

 

Configuración Desde la Interfaz

Para habilitar y configurar el servicio desde la interfaz de Drupal, sigue estos pasos:

  1. Activar el módulo
    Ve a admin/modules y activa el módulo Rootstack Custom services.
  2. Asignar permisos
    Asigna los permisos correspondientes desde admin/people/permissions para asegurar que los usuarios adecuados tengan acceso al servicio.
  3. Generar el servicio
    Ve a admin/structure/services y genera el servicio.
  4. Seleccionar el recurso
    Desde la pestaña de Recursos, selecciona el recurso que has creado.

 

La creación de servicios en Drupal es un proceso muy útil y sencillo. No solo permite realizar consultas a la base de datos, sino también acceder a indexaciones de Solr y tener control total sobre los permisos de cada servicio creado. Este enfoque facilita la personalización de los servicios de manera eficiente y segura.

 

Te recomendamos este video