Comme tous les module de EFR, le module des tables dynamiques est intégralement manipulable à l’aides des API.
Nous discuterons ici des usages spécifiques.
Pour les exemples suivants, les URL seront au format suivant :
<méthode> : {base-url}/<URI>
--
<méthode> correspond à la méthode HTTP utilisée (GET, POST, ...)
{base-url} correspond à https://{URL vers EFR}/{environnement}/transcodifications/1
<URI> sera l'URI spécifique à l'opération. |
Dans l’hypothèse où il est nécessaire d’envoyer plusieurs transcodifications d’un coup, il faut procéder à un import. Celui-ci se déroule en deux étapes : création de l’import, puis attente de complétion.
PUT: {base-EFR}/datasources/{datasource_id}/indexes/{index_id}/transcodifications |
Dans le body, est attendu un tableau de Transcodifications (voir les spécifications API pour le détail).
Vous obtiendrez alors un retour de cette forme:
{
"id": "f4e342e7-9310-4590-a7fb-60a53a47930d",
"datasourceId": "foo_datasource",
"indexId": "bar_index",
"job_created": "2024-02-34T13:59:59",
"status": "pending",
"fragments": 42,
"lines_to_create": 10000,
"lines_created": 0,
"lines_in_error": 0,
"userId": "alice"
} |
Dans ce retour, conservez bien l’id de réponse (ici f4e342e7-9310-4590-a7fb-60a53a47930d).
Pour les imports massifs, il est souvent utile d’effectuer une vérification de l’import. Cela permet de mettre en évidence toutes les erreurs qui seront ensuite remontées lors du véritable import.
Pour cela, envoyez le tableau de transcodifications à l’URL :
POST: {base-EFR}/datasources/{datasource_id}/indexes/{index_id}/transcodifications/verify |
La réponse sera donnée en une dizaine de secondes.
Avec l’id récupéré précédemment, vous pouvez poller l’URL suivante :
GET: {base-EFR}/imports-async/{id} |
Qui vous renverra une réponse du même aspect que précédemment.
En cas d’erreur (status = finished et lines_in_error > 0) alors vous pouvez lister les lignes en erreur à l’aide d’un appel sur :
GET: {base-EFR}/imports-async/{id}/errors |
Vous pouvez aussi exporter les données d’un index dans un format spécifique. Pour cela, vous procéderez en 3 étapes.
Il suffit d’effectuer la requête suivante. Elle cible un index spécifique, et nécessite un format d’export.
POST: {base-EFR}/datasources/{datasource_id}/indexes/{index_id}/export-async?format={format} |
Les formats autorisés sont : CSV, JSON, properties, YAML et XML.
Vous récupérerez une réponse qui contiendra elle aussi un id qu’il vous faudra conserver.
Comme précédemment, pollez l’URL suivante. Une fois que le status passera en finished sans champ error, alors il sera possible de récupérer la sortie.
GET: {base-EFR}/export-async/{id} |
Un export ne devrait à priori jamais durer plus de 5 minutes.
Dès lors que le status est bien passé en finished, vous pouvez appeler l’URL suivante :
GET: {base-EFR}/export-async/{id}/file |
Le body contiendra les données au format texte.