Passer au contenu principal

Gestion des types

Mis à jour il y a plus de 2 semaines

Cette section décrit les endpoints de l'API permettant de créer, lister, modifier et supprimer les types au sein d'une arborescence fonctionnelle.

Remarque : Si vous n'êtes pas familiers avec la notion de "types", consultez l'article sur la configuration des types dans IndaMeta.


Récupérer la liste des types dans une arborescence

Description

Cette requête renvoie la liste des types d'éléments définis dans une arborescence. Elle est essentielle car elle vous permet de récupérer l'ID de chaque type, qui sera ensuite nécessaire pour effectuer d'autres requêtes.

Get v2/data-structures/{data_structure_id}/types

Scope

Pour effectuer cette requête, vous devez posséder le scope metadata:read.

Paramètres

Ce paramètre doit être ajouté à l'URL pour construire la chaîne de requête :

/v2/data-structures/{data_structure_id}/types

Exemple de requête :

# Commande pour lister les types d'une arborescence 
curl -X 'GET' \
  'https://xxx.indaba.api.indasuite.io-base.com/v2/data-structures/67337415-6bcb-4c21-b0f5-8253d68b6e80/types' \

  # ----- En-têtes -----
  -H 'accept: application/json' \
  -H 'Authorization: Bearer VOTRE_JETON_JWT'

Réponses :

Exemple de réponse valide (200 ok) :

{ 
  "data": [
    {
      "id": "4c51dc5f-2951-47c6-81cd-9691c86e2e64",
      "name": "Folder",
      "properties": [],
      "metricTemplates": [],
      "formulaTemplates": [],
      "isTypeMetric": false
    },
    {
      "id": "5776c7ff-7eae-4a53-bf3a-19939b0e1a0f",
      "name": "Metric",
      "properties": [],
      "metricProperties": [
        {
          "name": "Name",
          "format": "Text"
        },
        {
          "name": "Datasource",
          "format": "Text"
        },
        {
          "name": "Description",
          "format": "Text"
        },
        {
          "name": "Unit",
          "format": "Text"
        }
      ],
      "metricTemplates": [],
      "formulaTemplates": [],
      "isTypeMetric": true
    }
  ],
  "resultCode": 2010,
  "message": "OK"
}

Erreurs courantes :

Veuillez vous référer à la liste des erreurs courantes.


Créer de nouveaux types

Description

Cette requête vous permet d'ajouter des types d'éléments dans une arborescence.

Post v2/data-structures/{data_structure_id}/types

Scope

Pour effectuer cette requête, vous devez posséder le scope metadata:admin.

Paramètres

Ce paramètre doit être ajouté à l'URL pour construire la chaîne de requête :

/v2/data-structures/{data_structure_id}/types

Corps de la requête

Les paramètres suivants doivent être fournis dans le corps de la requête :

  • name (obligatoire) : nom du type à créer

  • isTypeMetric (optionnel) : permet d'indiquer s'il s'agit d'un type métrique ou non.

    Ce paramètre peut prendre deux valeurs :

    • true : type métrique

    • false : type dossier

    Remarque : Si ce champ n'est pas spécifié, la valeur "false" (type dossier) est appliquée par défaut.

  • properties (optionnel) : permet d'ajouter des propriétés associées au type.

    Pour chaque propriété, vous devez indiquer :

    • name : nom de la propriété

    • format : format de la propriété. Peut prendre les valeurs :

      • Text

      • Boolean

      • Number

Exemple de requête

# Commande pour créer un nouveau type dans une arborescence 
curl -X 'POST' \
  'https://xxx.indaba.api.indasuite.io-base.com/v2/data-structures/67337415-6bcb-4c21-b0f5-8253d68b6e80/types' \

  # ----- En-têtes -----
  -H 'accept: application/json' \
  -H 'Authorization: Bearer VOTRE_JETON_JWT' \
  -H 'Content-Type: application/json' \

  # ----- Corps de la requête -----
  -d '
  {
    "name": "nouveau_type",
    "isTypeMetric": false,
    "properties": [
      {
        "name": "code_site",
        "format": "Text"
      },
      {
        "name": "HasDescription",
        "format": "Boolean"
      },
      {
        "name": "numero_site",
        "format": "Number"
      }
    ]
  }
  '

Exemple de réponse :

Exemple de réponse valide (200 ok) :

{ 
  "data": {
    "id": "67bfd93e-7216-49eb-8acf-88ada6e76b55",
    "name": "nouveau_type",
    "properties": [
      {
        "name": "code_site",
        "format": "Text"
      },
      {
        "name": "HasDescription",
        "format": "Boolean"
      },
      {
        "name": "numero_site",
        "format": "Number"
      }
    ],
    "metricTemplates": [],
    "formulaTemplates": [],
    "isTypeMetric": false
  },
  "resultCode": 2010,
  "message": "OK"
}

Erreurs courantes :

Veuillez vous référer à la liste des erreurs courantes.


Mettre à jour un type

Description

Cette requête vous permet d'éditer un type d'éléments contenu dans une arborescence.

Put v2/data-structures/{data_structure_id}/types/{type_id}

Scope

Pour effectuer cette requête, vous devez posséder le scope metadata:admin.

Paramètres

Ces paramètres doivent être ajoutés à l'URL pour construire la chaîne de requête :

v2/data-structures/{data_structure_id}/types/{type_id}

Corps de la requête

Les paramètres suivants doivent être fournis dans le corps de la requête :

  • name : nom du type

  • properties (optionnel) : propriétés associées au type.

    Pour chaque propriété, vous devez indiquer :

    • name : nom de la propriété

    • format : format de la propriété. Peut prendre les valeurs :

      • Text

      • Boolean

      • Number

Remarque : Le paramètre "isTypeMetric", permettant d'indiquer s'il s'agit d'un type métrique ou non, ne peut pas être modifié.

Exemple de requête :

# Commande pour mettre à jour un type dans une arborescence 
curl -X 'PUT' \
  'https://xxx.indaba.api.indasuite.io-base.com/v2/data-structures/54f87655-2ce5-4fa7-bd58-4185c289d1d0/types/5776c7ff-7eae-4a53-bf3a-19939b0e1a0f' \

  # ----- En-têtes -----
  -H 'accept: application/json' \
  -H 'Authorization: Bearer VOTRE_JETON_JWT' \
  -H 'Content-Type: application/json' \

  # ----- Corps de la requête -----
  -d '
  {
    "name": "modif",
    "isTypeMetric": false,
    "properties": [
      {
        "name": "Name",
        "format": "Text"
      },
      {
        "name": "Count",
        "format": "Number"
      }
    ]
  }
  '

Réponses

Exemple de réponse valide (200 OK) :

{ 
  "data": {
    "id": "5776c7ff-7eae-4a53-bf3a-19939b0e1a0f",
    "name": "modif",
    "properties": [
      {
        "name": "Name",
        "format": "Text"
      },
      {
        "name": "Count",
        "format": "Number"
      }
    ],
    "metricProperties": [
      {
        "name": "Name",
        "format": "Text"
      },
      {
        "name": "Datasource",
        "format": "Text"
      },
      {
        "name": "Description",
        "format": "Text"
      },
      {
        "name": "Unit",
        "format": "Text"
      }
    ],
    "metricTemplates": [],
    "formulaTemplates": [],
    "isTypeMetric": true
  },
  "resultCode": 2010,
  "message": "OK"
}

Erreurs courantes :

Veuillez vous référer à la liste des erreurs courantes.


Supprimer un type

Description

Cette requête vous permet de supprimer une type d'éléments.

Note : Il n'est possible de supprimer un type d'éléments que si aucun élément de ce type n'est utilisé dans l'arborescence.

Delete v2/data-structures/{data_structure_id}/types/{type_id}

Scope

Pour effectuer cette requête, vous devez posséder le scope metadata:admin.

Paramètres

Ces paramètres doivent être ajoutés à l'URL pour construire la chaîne de requête :

v2/data-structures/{data_structure_id}/types/{type_id}

Exemple de requête

# Commande pour supprimer un type d'une arborescence fonctionnelle
curl -X 'DELETE' \
  'https://xxx.indaba.api.indasuite.io-base.com/v2/data-structures/f9f16627-460e-4369-b345-a4ee3e94221e/types/88dacd49-2f01-4ca7-944c-6716322cb67e' \

  # ----- En-têtes -----
  -H 'accept: application/json' \
  -H 'Authorization: Bearer VOTRE_JETON_JWT'

Réponses

Exemple de réponse valide (200 OK) :

{ 
  "resultCode": 2010,
  "message": "OK"
}

Erreurs courantes :

Veuillez vous référer à la liste des erreurs courantes.

Erreur spécifique 400 :

Il est impossible de supprimer un type, si un élément appartenant à ce type est utilisé dans l'arborescence. L'erreur suivante apparaît alors :

{ 
  "errors": [],
  "resultCode": 2122,
  "message": "Type is used"
}


Erreurs courantes

Vous rencontrerez principalement les codes d'erreur HTTP suivants :

  • 400 Bad Request : Votre requête est malformée. Cela peut être dû à un paramètre manquant, un type de donnée incorrect ou un JSON invalide. Le corps de la réponse contiendra un tableau errors détaillant le problème.

    { 
    "errors": [
    {
    "error": "Type_De_L_Erreur",
    "message": "Description détaillée de l'erreur spécifique."
    }
    ],
    "statusCode": 1050,
    "message": "Invalid request"
    }

  • 401 Unauthorized : Votre jeton d'authentification (JWT) est manquant, invalide ou expiré. Vous devez obtenir un nouveau jeton valide.

  • 403 Forbidden : Votre jeton d'authentification est valide, mais vous n'avez pas les droits nécessaires pour cette action.

    Votre jeton n'a pas les droits (scope) nécessaires (par exemple, vous tentez de créer une arborescence sans avoir le scope metadata:admin).

  • 404 Not Found : La ressource que vous essayez d'atteindre n'existe pas. Cela se produit typiquement si vous utilisez un ID incorrect ou si vous demandez une métrique qui n'existe pas.


Avez-vous trouvé la réponse à votre question ?