Mit dieser Schnittstelle laden Sie eine CSV-Datei per REST in einen Datapool. Der Inhalt einer bestehenden CSV-Quelle wird dabei vollständig durch den Inhalt der Datei ersetzt. Daten werden nicht ergänzt oder einzeln aktualisiert.
|
; als Trennzeichen. Die erste Zeile enthält die Spaltennamen, jeder Spaltenname muss ausgefüllt sein. Das Format entspricht dem manuellen Upload.Der Zugriff ist über OAuth2 geschützt. Fordern Sie zuerst ein Access Token an. Es ist 60 Minuten gültig; danach muss ein neues angefordert werden.
curl -X POST "{SERVICE-URL}/formservice/services/rest/auth/token" \
-H "Content-Type: application/json" \
-d '{"grant_type":"client_credentials","client_id":"{CLIENT-ID}","client_secret":"{CLIENT-SECRET}"}' |
Aus der Antwort benötigen Sie den Wert von access_token.
Senden Sie die Datei als Body eines POST-Requests. Die beiden GUIDs stehen im Pfad, das Token im Header Authorization. Verwenden Sie --data-binary, damit die Datei unverändert (Bytes und Zeilenumbrüche) übertragen wird.
curl -X POST "{SERVICE-URL}/formservice/services/rest/datapool/{DATAPOOL-GUID}/source/{SOURCE-GUID}/import/csv" \
-H "Authorization: Bearer {ACCESS-TOKEN}" \
-H "Content-Type: text/csv" \
--data-binary "@daten.csv" |
Beispiel für den Inhalt von daten.csv:
Beruf;Ort;Anzahl Beruf A;Ort A;3 Beruf B;Ort B;1 |
Bei Erfolg antwortet der Server mit dem Status 200 und der Anzahl importierter Datenzeilen (ohne Kopfzeile):
{
"message": "File was uploaded successfully.",
"rows": 2
} |
Die neuen Daten sind danach verfügbar. Ob der Datapool die erwarteten Daten liefert, prüfen Sie mit der Anzeige in der Datapool-Definition (Tab «Anzeigen»).
Eine Datei ohne Datenzeilen wird abgelehnt, damit ein leerer Upload die Quelle nicht leert.
Die Datei muss dieselbe Zeichenkodierung haben wie beim ersten Upload der Quelle. Eine abweichende Kodierung kann im Request nicht angegeben werden. Sonst werden Umlaute falsch dargestellt. |
| Status | Mögliche Ursache | Was tun? |
|---|---|---|
| 400 | Keine Datei im Body, Kopfzeile fehlt oder enthält einen leeren Spaltennamen, keine Datenzeilen | Datei prüfen: erste Zeile mit Spaltennamen, mindestens eine Datenzeile, Trennzeichen ; |
| 401 | Access Token fehlt oder ist abgelaufen | Neues Token beziehen (Schritt 1) |
| 403 | Dem Benutzer fehlt die Rolle FORM_ADMIN | Rolle in der Benutzerverwaltung prüfen |
| 404 | GUID von Datapool oder Quelle falsch, die Quelle ist keine CSV-Quelle, oder der Datapool gehört zu einem anderen Mandanten (auch dann wird «nicht gefunden» gemeldet) | Beide GUIDs und den Mandanten des Benutzers prüfen |
| 500 | Der Import ist fehlgeschlagen | Bisherige Daten sind unverändert. Bei wiederholtem Fehler den Support kontaktieren |
Die REST-Dokumentation (Swagger UI) erreichen Sie unter {SERVICE-URL}/formservice/doc/rest-api/. Die Schnittstelle erscheint dort unter dem Eintrag datapool.
POST /datapool/{dataPoolId}/source/{sourceId}/import/csv aufklappen und «Try it out» wählen.