Téléversez des fichiers CSV ou Excel à utiliser comme source
de données csv, listez-les, supprimez-les et
téléchargez le résultat d'un process.
{DOMAIN} est le nom d'hôte de votre propre
serveur DQE One Standalone — il est auto-hébergé, cette valeur
dépend donc de votre déploiement. {EMAIL}
est votre identifiant de connexion DQE One et
{API_TOKEN} le token généré dans
My Account > API Token.
Bon à savoir : lorsque vous créez un process
csv, le fichier est cloné et
le clone est lié au process. Votre fichier téléversé d'origine
reste libre (vous pouvez le supprimer) ; le clone apparaît
dans listFiles avec son process_id
et ne peut pas être supprimé tant que le process existe.
Envoyez un POSTmultipart/form-data
avec un seul champ nommé file.
Règles : uniquement .csv,
.xlsx et .xls (la vérification
de l'extension est sensible à la casse, DATA.CSV
est donc refusé). Les fichiers Excel sont convertis en CSV
(première feuille uniquement) mais conservent leur nom Excel.
Les en-têtes de colonnes doivent être uniques
et ne pas contenir d'espaces. Le délimiteur
et le caractère de guillemet sont détectés automatiquement.
L'API n'impose aucune limite de taille :
le fichier entier est lu en mémoire, gardez donc des téléversements
raisonnables.
POSThttps://{DOMAIN}/api/File/add
Exemples de code
Téléverser un fichier
curl -u "{EMAIL}:{API_TOKEN}" -X POST \
-F "file=@contacts.csv" \
"https://{DOMAIN}/api/File/add"
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new
AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("{EMAIL}:{API_TOKEN}")));
using var request = new HttpRequestMessage(HttpMethod.Post,
"https://{DOMAIN}/api/File/add");
var form = new MultipartFormDataContent();
form.Add(new ByteArrayContent(File.ReadAllBytes("contacts.csv")),
"file", "contacts.csv");
request.Content = form;
var response = await client.SendAsync(request);
Console.WriteLine((int)response.StatusCode + " "
+ await response.Content.ReadAsStringAsync());
Authentification : HTTP Basic — votre email
DQE One et votre API token (My Account > API Token).
Consultez l'article Introduction.
Réponse
Fichier enregistré. Statut HTTP
201.
Clé
Description
Type
status
Valeurs : success
String
id
Integer
Exemple de réponse
Exemple de réponse
{
"status":
"success",
"id": 12
}
Erreurs
HTTP
Corps / signification
400
API only accept .csv, .xlsx or .xls file.
401
Unauthorized
500
Failed to save file: No space in header fields name allowed.
Tester l'API
Cliquez sur le bouton ci-dessous pour tester cet endpoint
en direct dans votre navigateur.
À savoir : cette console envoie une
vraie requête à votre propre serveur depuis
votre navigateur, avec votre véritable API token. Cela téléverse
un vrai fichier sur votre serveur.
Ouvrir la console
Lister les fichiers - DQE One Standalone API
Liste les fichiers que vous avez téléversés, du plus récent
au plus ancien, y compris les clones liés aux processes.
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new
AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("{EMAIL}:{API_TOKEN}")));
using var request = new HttpRequestMessage(HttpMethod.Get,
"https://{DOMAIN}/api/File/list");
var response = await client.SendAsync(request);
Console.WriteLine((int)response.StatusCode + " "
+ await response.Content.ReadAsStringAsync());
Envoyez une requête GET avec le processId.
La réponse est un fichier, pas du JSON.
Ce que vous obtenez : la clé primaire plus
les champs que le process synchronise — pas le fichier
de sortie complet. Toutes les valeurs sont entre guillemets,
en UTF-8, avec le délimiteur d'origine. Le nom de fichier
suggéré se termine par .csv.csv (une particularité
connue ; renommez-le librement). Si le process n'a
jamais été exécuté, ou si son dernier run
n'a pas encore de fichier de sortie (toujours en cours ou
en échec), le serveur répond par une
erreur HTTP 500 non formatée plutôt que
par une erreur JSON. Vérifiez d'abord le statut du run (Runs & results).
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new
AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("{EMAIL}:{API_TOKEN}")));
using var request = new HttpRequestMessage(HttpMethod.Get,
"https://{DOMAIN}/api/File/get?processId=42");
var response = await client.SendAsync(request);
Console.WriteLine((int)response.StatusCode + " "
+ await response.Content.ReadAsStringAsync());
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new
AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("{EMAIL}:{API_TOKEN}")));
using var request = new HttpRequestMessage(HttpMethod.Delete,
"https://{DOMAIN}/api/File/delete?id=12");
var response = await client.SendAsync(request);
Console.WriteLine((int)response.StatusCode + " "
+ await response.Content.ReadAsStringAsync());
Authentification : HTTP Basic — votre email
DQE One et votre API token (My Account > API Token).
Consultez l'article Introduction.
Réponse
Supprimé. Statut HTTP 200.
Clé
Description
Type
status
Valeurs : success
String
Exemple de réponse
Exemple de réponse
{
"status":
"success"
}
Erreurs
HTTP
Corps / signification
400
File ID is required
401
Unauthorized
404
File not found
423
File is associated with a process and cannot be deleted
Tester l'API
Cliquez sur le bouton ci-dessous pour tester cet endpoint
en direct dans votre navigateur.
À savoir : cette console envoie une
vraie requête à votre propre serveur depuis
votre navigateur, avec votre véritable API token. Cela
supprime définitivement le fichier.