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
data_structure_id (string, obligatoire) : ID attribué à l'arborescence.
Cet ID peut être récupéré via la requête
GET v2/data-structures
ou lors de la création d'une nouvelle arborescence avecPOST v2/data-structures
.
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
data_structure_id (string, obligatoire) : ID attribué à l'arborescence.
Cet ID peut être récupéré via la requête
GET v2/data-structures
ou lors de la création d'une nouvelle arborescence avecPOST v2/data-structures
.
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
data_structure_id (string, obligatoire) : ID attribué à l'arborescence.
Cet ID peut être récupéré via la requête
GET v2/data-structures
ou lors de la création d'une nouvelle arborescence avecPOST v2/data-structures
.
type_id (string, obligatoire) : ID attribué au type d'élément.
Cet ID peut être récupéré via la requête GET /v2/data-structures/{data_structure_id}/types ou suite à la création d'un nouveau type avec Post v2/data-structures/{data_structure_id}/types.
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
data_structure_id (string, obligatoire) : ID attribué à l'arborescence.
Cet ID peut être récupéré via la requête
GET v2/data-structures
ou lors de la création d'une nouvelle arborescence avecPOST v2/data-structures
.
type_id (string, obligatoire) : ID attribué au type d'élément.
Cet ID peut être récupéré via la requête GET /v2/data-structures/{data_structure_id}/types ou suite à la création d'un nouveau type avec Post v2/data-structures/{data_structure_id}/types.
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.