Los web services es una manera en la que podemos proveer de información a un dispositivo a través de una conección a internet, como por ejemplo, una lista de contenidos, entidades, usuarios, entre otros.
En esta ocasión vamos a crear un modulo custom, al que le definiremos un servicio para devolver un listado de usuarios.
**rootstack_services_custom.info**
name = Rootstack Custom services
description = My custom Rootstack Drupal module service.
package = Rootstack
core = 7.x
dependencies[] = services
dependencies[] = rest_server
**rootstack_services_custom.module**
/**
* Implements hook_permission().
*/
function rootstack_services_custom_permission() {
return array(
'rootstack get users' => array(
'title' => t('Retrieve a list of users.'),
),
);
}
**rootstack_services_custom.services.inc**
/**
* 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'),
),
),
);
}
**rootstack_services_custom.resources.inc**
/**
* 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();
}
**Configuraciones desde interface:**
- Activar el modulo(admin/modules)
- Asignar los permisos(admin/people/permissions)
- Generar el servicio, el cual se puede realizar desde la interface(admin/structure/services)
- Desde la pestaña de Recursos, seleccionamos el recurso creado.
**Conclusión**
La creación de servicios es muy útil y sencilla de realizar, no solo nos permite consultar a la base de datos, sino tambien a las indexaciones de Solr, al igual que nos permite tener control de permisos de cada servicio creado.