Documentation de l'API AD'HOC

Cette documentation décrit sommairement l'utilisation de l'api AD'HOC que vous pourrez utiliser pour alimenter votre site web en exploitant les contenus du site AD'HOC

L'url de l'API est la suivante : http://api.adhocmusic.com/ + action + . + format de sortie

Cette url reçoit des paramètres en HTTP GET, nous allons les détailler.

Le format de sortie recommandé est le json. D'autres formats sont disponibles pour tests : txt (dump en texte plein) et phpser (tableau php sérialisé). json a l'avantage d'être facilement manipulable côté serveur en php via les fonctions json_encode / json_decode, ou côté client en javascript ! D'où notre recommandation.

L'encodage de caractères de la réponse est utf-8

Liste des actions disponibles

groupe, lieu, debut, limit, event, contact sont des numériques

datdeb et datfin sont au format 'yyyy-mm-dd'

sort peut prendre la valeur id ou created_on

sens peut prendre la valeur ASC ou DESC

Classe cliente PHP

Si vous utilisez php comme langage de programmation, nous vous recommandons l'utilisation de cette classe afin de faciliter vos requêtes

<?php

/**
 * Client de l'API REST/JSON AD'HOC
 *
 * @package adhoc
 * @author Guillaume Seznec <guillaume.seznec@gmail.com>
 */
class AdHocClientApi
{
    const 
ID_GROUPE   '0'// à remplacer par votre id_groupe
    
const ID_CONTACT  '0'// à remplacer par votre id_membre
    
const API_KEY     '';  // à remplacer par la clé API qui vous a été fournie

    
const API_URL     'api.adhocmusic.com';
    const 
API_VERSION '2';
    const 
API_FORMAT  'json';

    
/**
     * @return array
     */
    
public static function getPhotos()
    {
        return 
self::query(
            array(
                
'action'  => 'get-photos',
                
'groupe'  => self::ID_GROUPE,
                
'contact' => self::ID_CONTACT,
                
'limit'   => '50',
            )
        );
    }

    
/**
     * @return array
     */
    
public static function getVideos()
    {
        return 
self::query(
            array(
                
'action' => 'get-videos',
                
'groupe' => self::ID_GROUPE,
                
'limit'  => '50',
            )
        );
    }

    
/**
     * @return array
     */
    
public static function getAudios()
    {
        return 
self::query(
            array(
                
'action' => 'get-audios',
                
'groupe' => self::ID_GROUPE,
                
'limit'  => '12',
            )
        );
    }

    
/**
     * @return array
     */
    
public static function getEvents()
    {
        return 
self::query(
            array(
                
'action' => 'get-events',
                
'groupe' => self::ID_GROUPE,
                
'datdeb' => date('Y-m-d'),
                
'limit'  => '30',
            )
        );
    }

    
/**
     * Exécute une requête sur l'API REST/JSON AD'HOC
     *
     * @param array $data
     * @return string au format json
     */
    
public static function query($data)
    {
        
$params '';
        foreach(
$data as $field => $value) {
            
$params .= $field '=' $value '&';
        }   
        
$resp file_get_contents('http://' self::API_URL '/' $data['action'] . '.' $data['format'] . '?' substr($params0, -1));
        return 
$resp;
        if(
$data['format'] == 'json') {
            
$resp json_decode($resp);
        }
        return 
$resp;
    }   
}

Exemple d'utilisation

require_once "AdhocClientApi.class.php";

$photos = AdHocClientApi::query(
    array(
        'action' => 'get-photos',
        'groupe' => 'id_de_mon_groupe'
        'limit'  => '20',
    )
);

//
$photos = AdHocClientApi::getPhotos();

// renvoit un tableau d'objets contenant les photos trouvées

var_dump($photos);


Ex de requête http get : http://api.adhocmusic.com/get-events.json?groupe=7&limit=5

En cas de difficultés, n'hésitez pas à prendre contact avec les développeurs

Vous pouvez aussi tester notre console de debug

Exemple d'utilisation en javascript/jquery

<html>
  <head>
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>          
  </head>
  <body>
    <script>                                         
    $(function() {
      // récupérer et afficher 3 photos du groupe polar polar polar polar
      $.getJSON('http://api.adhocmusic.com/get-photos.json?groupe=801&limit=3', function(data) {
        var items = [];
        $.each(data, function(idx, photo) {
          items.push('<li><img src="' + photo.thumb_80_80 + '" alt="' + photo.name + '" /></li>');
        });
        $('<ul/>', {
          html: items.join('')
        }).appendTo('body');
      });
    });
    </script>
  </body>
</html>