언급 된 링크 외에도 웹 서비스를 사용하는 모듈의 코드가 있습니다. "구조"에서 서비스를 활성화하고 엔드 포인트를 정의해야합니다. 또한 허용되는 리턴 유형을 설정하십시오.
따라서 'api'를 엔드 포인트로 정의하고 json 배열을 원하는 경우 yoursite.com/api/servicename/arg1/arg2.json과 같은 요청을 수행합니다. hook_services_resources에 서비스 이름을 정의하십시오.
<?php
// $Id$
/* * **********************************************************************************************
* @file
* Based on the RESTful API shell module http://drupal.org/node/1034540
*/
/* * *************************************************************************************************
* Include necessary files
*/
require_once (drupal_get_path('module', 'graph_data_api') . '/model/highchart_graph.php');
/* * *************************************************************************************************
* Implementation of hook_help().
* @see http://api.drupal.org/api/function/hook_help/6
*/
function graph_data_api_help($path, $arg) {
$msg = t('<p>Provides a API for graph data for use with Highcharts.</p>');
switch ($path) {
case 'admin/help#graph_data_api':
return $msg;
case 'admin/modules#description':
return $msg;
}
}
/* * *************************************************************************************************
* Implementation of hook_disable()
* @see http://api.drupal.org/api/function/hook_disable/6
*/
function graph_data_api_disable() {
cache_clear_all('services:methods', 'cache');
//eco_debug( '*** graph_data_api_disable() called!' );
}
/* * *************************************************************************************************
* Implementation of hook_enable()
* @see http://api.drupal.org/api/function/hook_enable/6
*/
function graph_data_api_enable() {
cache_clear_all('services:methods', 'cache');
//eco_debug( '*** graph_data_api_enable() called!' );
}
/* * *************************************************************************************************
* Implementation of hook_perm().
* @see http://api.drupal.org/api/function/hook_perm/6
*/
function graph_data_api_permission() {
return array(
'request graph data' => array(
'title' => t('Request graph data'),
'description' => t('Allows user to use the graph api for Highchart graphs'),
),
);
}
/* * *************************************************************************************************
* Access callback
* For now only view/retrieve is implemented and if the user is logged in, he gets access
*/
function _graph_data_api_graphdata_access($op) {
global $user;
$access = FALSE;
switch ($op) {
case 'view':
if ($user->uid) {
$access = TRUE;
}
break;
}
return $access;
}
/* * *************************************************************************************************
* Implementation of hook_services_resources().
* For now only retrieve with a GET request is implemented
*/
function graph_data_api_services_resources() {
return array(
'graphdata' => array(
'retrieve' => array('help' => 'Retrieves graphdata',
'callback' => '_graph_data_api_graphdata_retrieve',
'access callback' => '_graph_data_api_graphdata_access',
'access arguments' => array('view'),
'access arguments append' => FALSE,
'args' => array(
array('name' => 'parameters',
'type' => 'string',
'description' => 'The parameters that define requested data',
'source' => array('path' => '0'), // first argument in the url
'optional' => FALSE,
),
),
),
),
);
}
/* * *************************************************************************************************
* Callback for the retrieve resource
*/
function _graph_data_api_graphdata_retrieve($arg) {
$data = 'hello world';
return $data;
}