O Drupal possui funções específicas que podem ajudar na comunicação com um serviço da Web e no tratamento da entrada JSON.
O Drupal 7 tem as seguintes funções:
Com essas funções, você pode escrever seu próprio módulo personalizado para fazer solicitações a um site que implemente um serviço da Web.
Se houver algumas restrições sobre o número de solicitações que podem ser feitas ao servidor da web, você poderá usar as funções do Drupal para armazenar em cache o resultado obtido no servidor da web:
Observe que o Drupal suporta mais de uma bandeja de cache e os módulos podem usar suas próprias caixas de cache, quando necessário.
O Drupal também suporta itens de cache que são removidos automaticamente com o furto sucessivo de cache (consulte a descrição para a constante CACHE_TEMPORARY ). Implementando hook_flush_caches () , os módulos permitem que os usuários administradores limpem o cache usado pelo módulo quando o botão "Limpar" na página "Desempenho" é clicado ou sempre que um módulo chama drupal_flush_all_caches () .
No Drupal 7, os dados de cache dos dados usados com frequência estão associados a uma variável estática tratada com drupal_static () . Quando os dados são realmente usados com frequência na saída da mesma página, um código semelhante ao seguinte é usado:
// Use the advanced drupal_static() pattern, since this is called very often.
static $drupal_static_fast;
if (!isset($drupal_static_fast)) {
$drupal_static_fast['implementations'] = &drupal_static(__FUNCTION__);
}
$implementations = &$drupal_static_fast['implementations'];
// …
// Fetch implementations from cache.
if (empty($implementations)) {
$implementations = cache_get('module_implements', 'cache_bootstrap');
if ($implementations === FALSE) {
$implementations = array();
}
else {
$implementations = $implementations->data;
}
}
O código faz parte de module_implements () .