phpdrupaldrupal-7drupal-services

Drupal 7 REST services - Suppress API output of NULL


I've an API service callback function which ties up with its own module template to give an HTML output. As per my understanding, default content type of API output is application/json, so I had to override it manually to text/html.

However, I'm still getting a null output always no matter whatever I try. How can I suppress this unwanted null output?


custom_module.module

function api_callback_function($a) {
  if (!headers_sent()) {
    drupal_add_http_header('Content-Type', 'text/html');
  }
  print theme('custom_template_name_alias', array(
    'b' => $a
  ));
  return;
}

function custom_module_theme() {
  $themes = array(
    'custom_template_name_alias' => array(
      'template' => 'something-only', // name of template file, sans file extension
      'variables' => array(
        'b' => NULL
      ),
    )
  );
  return $themes;
}

something-only.tpl.php

<?php
$c = $variables['b'];
$path = drupal_get_path('module', 'custom_module');
global $base_url;
?>
<!doctype html><html class="no-js" lang="en">
  <head>
    <!-- HEAD related HTML code comes here -->
  </head>
  <body>
    <div>Current value of variable 'b' = <?php echo $c; ?></div>
  </body>
</html>

Output

Output


Solution

  • Try to replace return to die() in api_callback_function