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.