...
Pour les exemples suivants, les URL seront au format suivant :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
<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. |
...
1. Créer un nouvel import
| Bloc de code | ||||||
|---|---|---|---|---|---|---|
| ||||||
PUT: {base-EFR}/datasources/{datasource_id}/indexes/{index_id}/transcodifications |
...
Vous obtiendrez alors un retour de cette forme:
| Bloc de code | ||||||
|---|---|---|---|---|---|---|
| ||||||
{
"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).
Vérification des imports
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. Toutes les contraintes seront testées, ainsi que l’existence des colonnes.
Pour cela, envoyez le tableau de transcodifications à l’URL :
| Bloc de code | ||||||
|---|---|---|---|---|---|---|
| ||||||
POST: {base-EFR}/datasources/{datasource_id}/indexes/{index_id}/transcodifications/verify |
La réponse sera donnée en une dizaine de secondes.
2. Attendre la complétion de l’import
Avec l’id récupéré précédemment, vous pouvez poller l’URL suivante :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
GET: {base-EFR}/imports-async/{id} |
...
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 :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
GET: {base-EFR}/imports-async/{id}/errors |
...
Il suffit d’effectuer la requête suivante. Elle cible un index spécifique, et nécessite un format d’export.
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
POST: {base-EFR}/datasources/{datasource_id}/indexes/{index_id}/export-async?format={format} |
...
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.
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
GET: {base-EFR}/datasources/{datasource_id}/indexes/{index_id}/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 :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
GET: {base-EFR}/datasources/{datasource_id}/indexes/{index_id}/export-async/{id}/file |
Le body contiendra les données au format texte.