Dataeien

Support DQE
Support DQE
  • Aktualisiert
Dateien - DQE One Standalone API

Laden Sie CSV- oder Excel-Dateien hoch, um sie als csv-Datenquelle zu verwenden, listen und löschen Sie sie und laden Sie das Ergebnis eines Process herunter.

{DOMAIN} ist der Hostname Ihres eigenen DQE One Standalone Servers — er wird selbst gehostet, daher hängt dieser Wert von Ihrer Bereitstellung ab. {EMAIL} ist Ihr DQE One Login und {API_TOKEN} der Token, der unter My Account > API Token generiert wird.
Gut zu wissen: Wenn Sie einen csv-Process erstellen, wird die Datei geklont und der Klon mit dem Process verknüpft. Ihr ursprünglicher Upload bleibt frei (Sie können ihn löschen); der Klon erscheint in listFiles mit seiner process_id und kann nicht gelöscht werden, solange der Process existiert.
Datei hochladen - DQE One Standalone API

Lädt eine CSV- oder Excel-Datei hoch. Die zurückgegebene ID übergeben Sie als file, wenn Sie einen csv-Process erstellen.

addFile

Anfrage

Senden Sie einen multipart/form-data-POST mit einem Feld namens file.

Regeln: nur .csv, .xlsx und .xls (die Prüfung der Dateiendung unterscheidet zwischen Groß- und Kleinschreibung, daher wird DATA.CSV abgelehnt). Excel-Dateien werden in CSV umgewandelt (nur das erste Blatt), behalten aber ihren Excel-Namen. Spaltenüberschriften müssen eindeutig sein und dürfen keine Leerzeichen enthalten. Trennzeichen und Anführungszeichen werden automatisch erkannt. Die API erzwingt keine Größenbeschränkung: Die gesamte Datei wird in den Arbeitsspeicher gelesen, halten Sie Uploads daher in einem vernünftigen Rahmen.
POSThttps://{DOMAIN}/api/File/add

Codebeispiele

Datei hochladen

curl -u "{EMAIL}:{API_TOKEN}" -X POST \ -F "file=@contacts.csv" \ "https://{DOMAIN}/api/File/add"
const form = new FormData(); form.append("file", fileInput.files[0]); // <input type="file"> fetch("https://{DOMAIN}/api/File/add", { method: "POST", headers: { "Authorization": "Basic " + btoa("{EMAIL}:{API_TOKEN}") }, body: form }) .then(r => r.text()) .then(data => console.log(data));
import requests response = requests.post( "https://{DOMAIN}/api/File/add", auth=("{EMAIL}", "{API_TOKEN}"), files={"file": open("contacts.csv", "rb")}, ) print(response.status_code, response.text)
<?php $ch = curl_init("https://{DOMAIN}/api/File/add"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_USERPWD, "{EMAIL}:{API_TOKEN}"); curl_setopt($ch, CURLOPT_POSTFIELDS, ['file' => new CURLFile("contacts.csv")]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo $status . " " . $response;
const axios = require('axios'); const FormData = require('form-data'); const fs = require('fs'); const form = new FormData(); form.append('file', fs.createReadStream("contacts.csv")); axios({ method: "post", url: "https://{DOMAIN}/api/File/add", auth: { username: "{EMAIL}", password: "{API_TOKEN}" }, headers: form.getHeaders(), data: form }) .then(res => console.log(res.status, res.data)) .catch(err => console.log(err.response ? err.response.status : err.message, err.response && err.response.data));
import java.net.URI; import java.net.http.*; import java.util.Base64; String auth = Base64.getEncoder().encodeToString("{EMAIL}:{API_TOKEN}".getBytes()); String boundary = "----dqe" + System.nanoTime(); byte[] content = java.nio.file.Files.readAllBytes(java.nio.file.Path.of("contacts.csv")); var out = new java.io.ByteArrayOutputStream(); out.write(("--" + boundary + "\r\nContent-Disposition: form-data; name=\"file\"; filename=\"" + "contacts.csv" + "\"\r\n\r\n").getBytes()); out.write(content); out.write(("\r\n--" + boundary + "--\r\n").getBytes()); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{DOMAIN}/api/File/add")) .header("Authorization", "Basic " + auth) .header("Content-Type", "multipart/form-data; boundary=" + boundary) .method("POST", HttpRequest.BodyPublishers.ofByteArray(out.toByteArray())) .build(); HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode() + " " + response.body());
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());
package main import ( "bytes" "fmt" "io" "mime/multipart" "net/http" "os" ) func main() { var buf bytes.Buffer w := multipart.NewWriter(&buf) part, _ := w.CreateFormFile("file", "contacts.csv") f, _ := os.Open("contacts.csv") io.Copy(part, f) w.Close() req, _ := http.NewRequest("POST", "https://{DOMAIN}/api/File/add", &buf) req.SetBasicAuth("{EMAIL}", "{API_TOKEN}") req.Header.Set("Content-Type", w.FormDataContentType()) resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() out, _ := io.ReadAll(resp.Body) fmt.Println(resp.StatusCode, string(out)) }

Parameter

Feld Beschreibung Typ Pflicht / Opt.
file .csv, .xlsx oder .xls. String (file) Pflicht
Authentifizierung: HTTP Basic — Ihre DQE One E-Mail-Adresse und Ihr API token (My Account > API Token). Siehe den Artikel Introduction.

Antwort

Datei gespeichert. HTTP-Status 201.

Schlüssel Beschreibung Typ
status
Werte: success
String
id Integer

Antwortbeispiel

Beispielantwort
{ "status": "success", "id": 12 }

Fehler

HTTP Body / Bedeutung
400 API only accept .csv, .xlsx or .xls file.
401 Unauthorized
500 Failed to save file: No space in header fields name allowed.

API testen

Klicken Sie auf die Schaltfläche unten, um diesen Endpoint live in Ihrem Browser zu testen.

Hinweis: Diese Konsole sendet aus Ihrem Browser eine echte Anfrage an Ihren eigenen Server, mit Ihrem echten API token. Dadurch wird eine echte Datei auf Ihren Server hochgeladen.
Konsole öffnen
Dateien auflisten - DQE One Standalone API

Listet die von Ihnen hochgeladenen Dateien auf, die neuesten zuerst, einschließlich der mit Processes verknüpften Klone.

listFiles

Anfrage

Senden Sie eine GET-Anfrage. Es gibt keine Parameter.

GEThttps://{DOMAIN}/api/File/list

Codebeispiele

Ihre Dateien auflisten

curl -u "{EMAIL}:{API_TOKEN}" \ "https://{DOMAIN}/api/File/list"
fetch("https://{DOMAIN}/api/File/list", { method: "GET", headers: { "Authorization": "Basic " + btoa("{EMAIL}:{API_TOKEN}") } }) .then(r => r.text()) .then(data => console.log(data));
import requests response = requests.get( "https://{DOMAIN}/api/File/list", auth=("{EMAIL}", "{API_TOKEN}"), ) print(response.status_code, response.text)
<?php $ch = curl_init("https://{DOMAIN}/api/File/list"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_USERPWD, "{EMAIL}:{API_TOKEN}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo $status . " " . $response;
const axios = require('axios'); axios({ method: "get", url: "https://{DOMAIN}/api/File/list", auth: { username: "{EMAIL}", password: "{API_TOKEN}" } }) .then(res => console.log(res.status, res.data)) .catch(err => console.log(err.response ? err.response.status : err.message, err.response && err.response.data));
import java.net.URI; import java.net.http.*; import java.util.Base64; String auth = Base64.getEncoder().encodeToString("{EMAIL}:{API_TOKEN}".getBytes()); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{DOMAIN}/api/File/list")) .header("Authorization", "Basic " + auth) .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode() + " " + response.body());
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());
package main import ( "fmt" "io" "net/http" ) func main() { req, _ := http.NewRequest("GET", "https://{DOMAIN}/api/File/list", nil) req.SetBasicAuth("{EMAIL}", "{API_TOKEN}") resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() out, _ := io.ReadAll(resp.Body) fmt.Println(resp.StatusCode, string(out)) }

Parameter

Dieser Endpoint benötigt keine Parameter.

Authentifizierung: HTTP Basic — Ihre DQE One E-Mail-Adresse und Ihr API token (My Account > API Token). Siehe den Artikel Introduction.

Antwort

Array von Dateien. HTTP-Status 200.

Der Body ist ein JSON-Array; jedes Element enthält diese Schlüssel.

Schlüssel Beschreibung Typ
id Integer
name String
headers Spaltennamen. Array
rows Anzahl der Zeilen. Integer
process_id Process, mit dem die Datei verknüpft ist, oder null, wenn es sich um einen freien Upload handelt. Integer

Antwortbeispiel

Beispielantwort
[ { "id": 12, "name": "contacts.csv", "headers": [ "Id", "Email" ], "rows": 1500, "process_id": null } ]

Fehler

HTTP Body / Bedeutung
401 Unauthorized

API testen

Klicken Sie auf die Schaltfläche unten, um diesen Endpoint live in Ihrem Browser zu testen.

Hinweis: Diese Konsole sendet aus Ihrem Browser eine echte Anfrage an Ihren eigenen Server, mit Ihrem echten API token.
Konsole öffnen
Process-Ergebnis herunterladen - DQE One Standalone API

Lädt das Ergebnis des letzten Runs eines Process als CSV-Anhang herunter.

getProcessResult

Anfrage

Senden Sie eine GET-Anfrage mit der processId. Die Antwort ist eine Datei, kein JSON.

Was Sie erhalten: den Primärschlüssel plus die Felder, die der Process synchronisiert — nicht die vollständige Ausgabedatei. Alle Werte sind in Anführungszeichen gesetzt, UTF-8, mit dem ursprünglichen Trennzeichen. Der vorgeschlagene Dateiname endet auf .csv.csv (eine bekannte Eigenheit; benennen Sie die Datei einfach um). Wenn der Process nie ausgeführt wurde oder sein letzter Run noch keine Ausgabedatei hat (läuft noch oder ist fehlgeschlagen), antwortet der Server mit einem unformatierten HTTP 500 statt mit einem JSON-Fehler. Prüfen Sie daher zuerst den Run-Status (Runs & results).
GEThttps://{DOMAIN}/api/File/get?processId={processId}

Codebeispiele

Process-Ergebnis herunterladen

curl -u "{EMAIL}:{API_TOKEN}" \ "https://{DOMAIN}/api/File/get?processId=42"
fetch("https://{DOMAIN}/api/File/get?processId=42", { method: "GET", headers: { "Authorization": "Basic " + btoa("{EMAIL}:{API_TOKEN}") } }) .then(r => r.text()) .then(data => console.log(data));
import requests response = requests.get( "https://{DOMAIN}/api/File/get", auth=("{EMAIL}", "{API_TOKEN}"), params={"processId": "42"}, ) print(response.status_code, response.text)
<?php $ch = curl_init("https://{DOMAIN}/api/File/get?processId=42"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_USERPWD, "{EMAIL}:{API_TOKEN}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo $status . " " . $response;
const axios = require('axios'); axios({ method: "get", url: "https://{DOMAIN}/api/File/get", auth: { username: "{EMAIL}", password: "{API_TOKEN}" }, params: { "processId": "42" } }) .then(res => console.log(res.status, res.data)) .catch(err => console.log(err.response ? err.response.status : err.message, err.response && err.response.data));
import java.net.URI; import java.net.http.*; import java.util.Base64; String auth = Base64.getEncoder().encodeToString("{EMAIL}:{API_TOKEN}".getBytes()); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{DOMAIN}/api/File/get?processId=42")) .header("Authorization", "Basic " + auth) .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode() + " " + response.body());
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());
package main import ( "fmt" "io" "net/http" ) func main() { req, _ := http.NewRequest("GET", "https://{DOMAIN}/api/File/get?processId=42", nil) req.SetBasicAuth("{EMAIL}", "{API_TOKEN}") resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() out, _ := io.ReadAll(resp.Body) fmt.Println(resp.StatusCode, string(out)) }

Parameter

Feld Beschreibung Typ Pflicht / Opt.
processId Process-ID. Integer Pflicht
Authentifizierung: HTTP Basic — Ihre DQE One E-Mail-Adresse und Ihr API token (My Account > API Token). Siehe den Artikel Introduction.

Antwort

CSV-Anhang (alle Werte in Anführungszeichen, UTF-8).. HTTP-Status 200.

Binäre Antwort bzw. Anhang (application/octet-stream).

Antwortbeispiel

Die Antwort ist ein Dateianhang, kein JSON.

Fehler

HTTP Body / Bedeutung
400 Process ID is required
401 Unauthorized
404 File not found for the given process.
500 Failed to extract fields from file.

API testen

Klicken Sie auf die Schaltfläche unten, um diesen Endpoint live in Ihrem Browser zu testen.

Hinweis: Diese Konsole sendet aus Ihrem Browser eine echte Anfrage an Ihren eigenen Server, mit Ihrem echten API token.
Konsole öffnen
Datei löschen - DQE One Standalone API

Löscht eine Datei und ihren Inhalt endgültig. Wird mit 423 abgelehnt, solange die Datei mit einem Process verknüpft ist.

deleteFile

Anfrage

Senden Sie eine DELETE-Anfrage mit der Datei-ID. Eine nicht numerische ID führt zu einem unformatierten HTTP 500, validieren Sie sie daher auf Ihrer Seite.

DELETEhttps://{DOMAIN}/api/File/delete?id={id}

Codebeispiele

Datei löschen

curl -u "{EMAIL}:{API_TOKEN}" -X DELETE \ "https://{DOMAIN}/api/File/delete?id=12"
fetch("https://{DOMAIN}/api/File/delete?id=12", { method: "DELETE", headers: { "Authorization": "Basic " + btoa("{EMAIL}:{API_TOKEN}") } }) .then(r => r.text()) .then(data => console.log(data));
import requests response = requests.delete( "https://{DOMAIN}/api/File/delete", auth=("{EMAIL}", "{API_TOKEN}"), params={"id": "12"}, ) print(response.status_code, response.text)
<?php $ch = curl_init("https://{DOMAIN}/api/File/delete?id=12"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_setopt($ch, CURLOPT_USERPWD, "{EMAIL}:{API_TOKEN}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo $status . " " . $response;
const axios = require('axios'); axios({ method: "delete", url: "https://{DOMAIN}/api/File/delete", auth: { username: "{EMAIL}", password: "{API_TOKEN}" }, params: { "id": "12" } }) .then(res => console.log(res.status, res.data)) .catch(err => console.log(err.response ? err.response.status : err.message, err.response && err.response.data));
import java.net.URI; import java.net.http.*; import java.util.Base64; String auth = Base64.getEncoder().encodeToString("{EMAIL}:{API_TOKEN}".getBytes()); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{DOMAIN}/api/File/delete?id=12")) .header("Authorization", "Basic " + auth) .method("DELETE", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode() + " " + response.body());
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());
package main import ( "fmt" "io" "net/http" ) func main() { req, _ := http.NewRequest("DELETE", "https://{DOMAIN}/api/File/delete?id=12", nil) req.SetBasicAuth("{EMAIL}", "{API_TOKEN}") resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() out, _ := io.ReadAll(resp.Body) fmt.Println(resp.StatusCode, string(out)) }

Parameter

Feld Beschreibung Typ Pflicht / Opt.
id Datei-ID. Integer Pflicht
Authentifizierung: HTTP Basic — Ihre DQE One E-Mail-Adresse und Ihr API token (My Account > API Token). Siehe den Artikel Introduction.

Antwort

Gelöscht. HTTP-Status 200.

Schlüssel Beschreibung Typ
status
Werte: success
String

Antwortbeispiel

Beispielantwort
{ "status": "success" }

Fehler

HTTP Body / Bedeutung
400 File ID is required
401 Unauthorized
404 File not found
423 File is associated with a process and cannot be deleted

API testen

Klicken Sie auf die Schaltfläche unten, um diesen Endpoint live in Ihrem Browser zu testen.

Hinweis: Diese Konsole sendet aus Ihrem Browser eine echte Anfrage an Ihren eigenen Server, mit Ihrem echten API token. Dadurch wird die Datei endgültig gelöscht.
Konsole öffnen

Siehe auch

Verknüpfung mit

War dieser Beitrag hilfreich?

0 von 0 fanden dies hilfreich