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