Cette page décrit l’interface HTTP/XML publique offerte par rEve.
Principes de l'intégration
Un système tiers peut interagir avec rEve via des requêtes de type HTTP GET retournant des réponses au format XML. Les requêtes de l'API publique d'un site rEve permettent de consulter, via requêtes HTTP/XML, le même contenu que celui disponible via le site sans être authentifié, c’est-à-dire la liste des activités actuellement publiées.
Authentification
Les requêtes publiques de rEve ne nécessitent pas d’authentification.
Les requêtes HTTP
Toutes les requêtes sont de type GET et retournent une réponse au format XML. Dans cette réponse, certains champs pourront contenir des URLs vers d’autres requêtes, permettant de compléter l’information réceptionnée par la première requête.
Fichiers binaires
Les fichiers binaires exposés via l'interface, tels les images des activités, le sont au sein même des charges utiles XML, à l'intérieur desquelles des tags contiendront tout ou partie des fichiers binaires, encodés en Base64.
Partons d'un exemple, au sein duquel les parties encodées en Base64 ont été tronquées.
<picture type="file" mimeType="image/png" name="LibreOffice.png">
<part type="base64" number="1">iVBORw0KGgoAAAANSUhEUgAAA...</part>
<part type="base64" number="2">rsnY99YHNva8QBcCTUSEcYClG8RKJv2XU...</part>
</picture>
Le tag principal, nommé ici picture, doit contenir les métadonnées suivantes: un type (valant "file", comme sur l'exemple), le type MIME du fichier et un nom polissé (attribut name).
Ensuite, un ou plusieurs sous-tags nommés part doivent charrier le contenu du fichier, décupés en morceaux si la taille du fichier dépasse une taille limite définie en interne. Chaque partie doit mentionner son type valant "base64" et son numéro d'ordre (attribut number, dont la première manifestation est 1 et non 0) parmi la séquence des parties du même fichier. Quant au contenu du tag, il s'agit de l'encodage en Base64 de la partie du fichier. Pourquoi découper ces fichiers binaires en morceaux? Le constat est que décoder des bouts courts de chaînes encodées en Base64 et les concaténer ensuite est plus performant qu'un décodage d'une chaîne unique plus longue.
Notation
L'URL de base du site sera notée {siteUrl}.
Services
Les services disponibles sont listés dans le tableau ci-dessous.
Service |
Description |
Type de requête |
get/activities |
Récupère la liste des activités actuellement publiées |
GET |
{activityId}/xml |
Récupère le détail d'une activité dont l'identifiant est activityId |
GET |
get/activityTypes |
Récupère les types d'activités actif sur un site rEve |
GET |
get/domainCategories |
Récupère les catégories de domaines actives |
GET |
get/activityTargets |
Récupère les publics-cibles actif actuellement définis |
GET |
get/activityTags |
Récupère les tags actuellement définis |
GET |
{periodId}/xml |
Récupère les détails au sujet d'une période externe, dont l'identifiant est periodIdi référencée par une activité |
GET |