Importer et exporter des données par API

Importer et exporter des données par API

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.

Importer des données

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.

1. Créer un nouvel import

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).

2. Attendre la complétion de l’import

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

Exporter les données

Vous pouvez aussi exporter les données d’un index dans un format spécifique. Pour cela, vous procéderez en 3 étapes.

1. Création de l’export

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.

2. Attente de la complétion

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.

3. Récupération des données

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.

Ce contenu est soumis au droit à Copyright. Il ne doit pas être utilisé sans accord de la société Middleware Editions.