Documentation technique

Accueil / Documentation technique / Flux v2 / API métadonnées / Administration des métadonnées

Administration des métadonnées

Tous les exemples de données de cette page sont fictifs. En particulier, il est rappelé que les métadonnées sont avant tout dédiées à recevoir des données d’interconnexion avec des services extérieurs (identifiants permettant de consulter des services externes).

Présentation du web-service

L’administration des métadonnées d’un de vos noeud se fait par le biais d’une API REST. L’action est déterminé par la méthode passée dans la requête :

  • Méthode GET : lecture des métadonnées du noeud.
  • Méthode PUT : permet d’insérer ou de modifier des métadonnées du noeud.
  • Méthode DELETE : permet de supprimer des métadonnées du noeud.

Authentification

L’authentification du projet se fait via une authentification « client credentials » OAuth.

Cette méthode d’authentification permet de récupérer un token qui doit être passé dans l’en-tête HTTP de l’appel pour authentifier le projet.

Méthodes d’accès au service REST

GET

Récupère des métadonnées sur un objet et pour un noeud donné. Si aucune cible n’est spécifiée, retourne l’intégralité des métadonnées de l’objet pour ce noeud.

  • méthode : GET
  • url : /v002/metadata/{referenceId}/{nodeId}/{targetType}/{targetId}
  • paramètres :
    • referenceId, paramètre obligatoire. Un entier, l’id de l’objet touristique portant les métadonnées.
    • nodeId, paramètre obligatoire. Une chaîne de caractères, le nom de votre noeud fournissant les métadonnées.
    • targetType, paramètre facultatif. Une chaîne de caractères, le type de la cible parmi general, membre, projet.
    • targetId, paramètre facultatif. Un entier, l’id du membre ou du projet cible.
  • exemple d’appel : /api/v002/metadata/100798/alliance-reseau-commercialisation/projet/1
  • résultat : l’information associé à l’objet, au noeud et à la cible indiquée.

DELETE

Supprime une ou plusieurs métadonnées sur une objet et pour un noeud donné. Si aucune cible n’est spécifiée, supprime l’intégralité des métadonnées de l’objet pour ce noeud.

  • méthode : DELETE
  • url : /v002/metadata/{referenceId}/{nodeId}/{targetType}/{targetId}
  • paramètres :
    • referenceId, paramètre obligatoire. Un entier, l’id de l’objet touristique portant les métadonnées.
    • nodeId, paramètre obligatoire. Une chaîne de caractères, le nom de votre noeud fournissant les métadonnées.
    • targetType, paramètre facultatif. Une chaîne de caractères, le type de la cible parmi general, membre, projet.
    • targetId, paramètre facultatif. Un entier, l’id du membre ou du projet cible.
  • exemple d’appel : /api/v002/metadata/100798/alliance-reseau-commercialisation/membre/64
  • résultat : Code 200 si la suppression s’est passée sans erreur. Une erreur sinon.

PUT

Insère ou modifie des métadonnées sur un objet, pour un noeud donné. Attention, pour cette méthode, les métadonnées doivent être passées dans des paramètres de la requête. Voir le format des données.

Remarque : Si vous insérez une métadonnée pour une cible qui en a déjà une, la métadonnée pré-existante sera écrasée et remplacée par la nouvelle.

  • méthode : PUT
  • url : /v002/metadata/{referenceId}/{nodeId}
  • paramètres d’URL :
    • referenceId, paramètre obligatoire. Un entier, l’id de l’objet touristique portant les métadonnées.
    • nodeId, paramètre obligatoire. Une chaîne de caractères, le nom de votre noeud fournissant les métadonnées.
  • Exemple d’appel : /api/v002/metadata/100798/alliance-reseau-commercialisation
  • résultat : Code 200 si la modification s’est passée sans erreur. Une erreur sinon.

Format des données

Les métadonnées doivent être insérées dans des paramètres de la requête PUT.

Il existe plusieurs moyens d’insérer des métadonnées, à utiliser selon le nombre de métadonnées à insérer et le type de cibles visées.

Insérer les métadonnées unes à unes

  • Nom du paramètre : le type de cible (general, membre ou projet), suivi de l’id de la cible si nécessaire, sous la forme _.
  • Données associées au paramètre : la métadonné JSON.

Exemple :

general={"infoGenerale":"Ceci est une information a portée générale"}
membres.membre_42={"foo":"Lorem ipsum dolor sit amet, consectetur adipisicing elit"}
projets.projet_1={"pression":2.2,"temperatures":[10,25]}

Insérer plusieurs métadonnées pour un meme type de cible

  • Nom du paramètre : membres ou projets, selon le type de cible à insérer.
  • Données associées au paramètre : une liste d’éléments au format JSON. Chaque élément possède doit posséder un champ targetId, pour l’id de la cible, et un champ jsonData, contenant la métadonnée encodée au format json (c’est donc un champ texte contenant la donnée json encodée et échappée).

Exemple :

membres= [
  {
     "targetId" : 21,
     "jsonData" : "{ \"texte1\":\"Cette information est à destination du membre 21\" , \"departements\" : [69,38]"}
  },
  {
     "targetId" : 12,
     "jsonData" : "{ \"bar\":\"Lorem ipsum dolor sit amet, consectetur adipisicing elit\" }"
  }
]


projets=[
 {
    "targetId" : 118,
    "jsonData" : "{ \"foo\":\"Ceci est une information à destination du projet 118\", \"temperature\" : 19}"
 },
 {
    "targetId" : 322,
    "jsonData" : "{ \"lipsum\":\"Lorem ipsum dolor sit amet, consectetur adipisicing elit\" }"
 }
]

Insérer plusieurs métadonnées pour des types de cibles différents

  • Nom du paramètre : node.
  • Données associées au paramètre : une structure de données, au format JSON. La structure est composée de trois champs : general qui contient la métadonnée à portée générale, membres et projets qui contiennent une structure de données similaire à celle présentée ci-dessus.

Exemple :

node={
  "general":"{\"capaciteMax\":12,\"capaciteMin\":2,\"note\":\"Lorem ipsum\"}",
  "membres":[
    {
      "targetId" : 21,
      "jsonData" : "{ \"texte1\":\"Cette information est à destination du membre 21\" , \"departements\" : [69,38]}"
    },
    {
      "targetId" : 12,
      "jsonData" : "{ \"bar\":\"Lorem ipsum dolor sit amet, consectetur adipisicing elit\" }"
    }
  ],
  "projets":[
    {
      "targetId" : 118,
      "jsonData" : "{ \"foo\":\"Ceci est une information à destination du projet 118\", \"temperature\" : 19}"
    },
    {
      "targetId" : 322,
      "jsonData" : "{ \"lipsum\":\"Lorem ipsum dolor sit amet, consectetur adipisicing elit\" }"
    }
  ]
}