Systeme per API nutzen

Die Syncler-API stellt Endpunkte bereit, um bestehende Konnektoren direkt anzusprechen – der Syncler fungiert dabei als Vermittler.
Damit lassen sich Lese- und Schreiboperationen gegen angebundene Systeme ausführen, ohne selbst deren native APIs detailliert kennen zu müssen.

image


Voraussetzungen

  • Authentifizierung: Access Token im Header
    Authorization: Bearer <ACCESS_TOKEN>
  • Inhaltstyp: Content-Type: application/json
  • Schemaobjekt & Systemauswahl: Das System (Konnektor) und das Schemaobjekt werden in der URL angegeben.

    Die exakten Routen können je Installation variieren. Konsultieren Sie die Swagger-Dokumentation Ihrer Instanz.


Endpunkt-Überblick

Zweck Variante Rückgabe Typische Verwendung
Lesen RunConnectionGetData Vollständiges Antwortobjekt inkl. Metadaten (Felder, Typen, Objektgruppen) UI-/Darstellungszwecke, Inspektion/Debugging
Lesen (minimal) RunConnectionGetDataMin Nur Daten als JSON, Felder/Objektgruppen direkt als Eigenschaften Performante Datenverarbeitung/ETL
Lesen (Einzelobjekt) GetDataObject Einzelner Datensatz inkl. Metadaten (per GET + ID) Direkter Lookup
Abfrage RunConnectionGetQueryData Abfrageergebnis; Zielfelder & Query-Statement im Body definiert Freie/komplexe Abfragen
Schreiben (vollständig) Metadaten-basierte Datenbeschreibung erforderlich Schreibvorgänge mit getypten Objektgruppen
Schreiben (minimal) (minimal) Nur Datenobjekt Einfache Schreibvorgänge ohne getypte Objektgruppen

Hinweis zu Objektgruppen:
Bei getypten Objektgruppen (z. B. unterschiedliche Typen innerhalb einer Gruppe) ist die minimierte Schreibvariante ungeeignet, da Typinformationen fehlen. Verwenden Sie dafür die vollständige Datenbeschreibung.


Lesen – Parameter im Request-Body

Bei den Lesevarianten (RunConnectionGetData, RunConnectionGetDataMin) werden Leseparameter als JSON-Array übergeben. Häufige Parameter:

  • GETDATA_WHERE – Filterbedingung (Syntax gemäß Zielsystem/Konnektor, z. B. OData/SQL-ähnlich)
  • GETDATA_ID – Abruf eines konkreten Datensatzes über die ID
  • (optional) GETDATA_LIMIT, GETDATA_SKIP, GETDATA_ORDER – Begrenzung, Paging, Sortierung (sofern unterstützt)

Beispiel: Lesen mit Filter (WHERE) – vollständig (mit Metadaten)

POST https://<BASE_URL>/RunConnectionGetData/<SYSTEM_KEY>/<OBJECT_TYPE>
Authorization: Bearer <ACCESS_TOKEN>
Content-Type: application/json
[
  { "name": "GETDATA_WHERE", "value": "UpdatedAt gt '2025-09-01T00:00:00Z'" },
  { "name": "GETDATA_LIMIT",   "value": "100" }
]

Beispiel: Lesen mit Filter (WHERE) – minimal (nur Daten)

POST https://<BASE_URL>/RunConnectionGetDataMin/<SYSTEM_KEY>/<OBJECT_TYPE>
Authorization: Bearer <ACCESS_TOKEN>
Content-Type: application/json
[
  { "name": "GETDATA_WHERE", "value": "UpdatedAt gt '2025-09-01T00:00:00Z'" }
]

Beispiel: Lesen per ID (Parameter GETDATA_ID)

POST https://<BASE_URL>/RunConnectionGetDataMin/<SYSTEM_KEY>/<OBJECT_TYPE>
Authorization: Bearer <ACCESS_TOKEN>
Content-Type: application/json
[
  { "name": "GETDATA_ID", "value": "A-10001" }
]

Einzelobjekt lesen – GetDataObject (mit Metadaten)

GET https://<BASE_URL>/GetDataObject/<SYSTEM_KEY>/<OBJECT_TYPE>/<OBJECT_KEY>
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json

Freie Abfrage – RunConnectionGetQueryData

Mit diesem Endpunkt führen Sie freie Abfragen aus. Der Body beschreibt Zielfelder (mind. Name & Typ) und enthält das Abfrage-Statement.

POST https://<BASE_URL>/RunConnectionGetQueryData/<SYSTEM_KEY>
Authorization: Bearer <ACCESS_TOKEN>
Content-Type: application/json
{
  "columns": [
    { "Name": "Id",   "ColumnType": "string" },
    { "Name": "Name", "ColumnType": "string" }
  ],
  "Statement": "SELECT Id, Name FROM Account WHERE UpdatedAt > '2025-09-01T00:00:00Z'",
  "CountStatement": "(optional) Für Total-Abfrage"
}

Hinweis: Syntax (SQL/OData/Systemspezifisch) richtet sich nach dem Konnektor/Zielsystem.


Schreiben (Create/Update)

Bei Schreiboperationen wird im Request-Body das Datenobjekt übergeben.
Es existieren zwei Varianten:

Vollständige Schreibvariante (mit Metadaten) – für getypte Gruppen erforderlich

POST https://<BASE_URL>/RunConnectionSetData/<SYSTEM_KEY>/<OBJECT_TYPE>
Authorization: Bearer <ACCESS_TOKEN>
Content-Type: application/json
{
  "name": "Account",
  "columns": [
    { "name": "Id", "columnType": "Integer", "value": 123 },
    { "name": "Name", "columnType": "string", "value": "ACME" }
  ],
  "idcolumns" : [
      { "name": "Id", "columnType": "Integer", "value": 123 }
  ]
}

Minimierte Schreibvariante (nur Daten) – ohne getypte Gruppen

POST https://<BASE_URL>/RunConnectionSetDataMin/<SYSTEM_KEY>/<OBJECT_TYPE>
Authorization: Bearer <ACCESS_TOKEN>
Content-Type: application/json
{
  "Id": 123,
  "Name": "ACME GmbH"
}

Grenze der Minimalvariante: Typinformationen innerhalb von Objektgruppen (z. B. type: "main") können nicht ausgedrückt werden.