Zum Inhalt springen

Daten lesen

Kurzantwort: Die response-Liste bestimmt, was zurückkommt — und was der Server überhaupt aus der Datenbank holt. Sie ist Pflicht. + liefert alle einfachen Felder, * zusätzlich alle Referenzen mit ihrer ID, und ein Objekt mit field baut eine Referenz gezielt aus.


{
"response": ["id", "name", "+", "*", { "field": "orders", "response": ["id"] }],
"exclude": ["internalNote"]
}
EintragBedeutung
"name"genau dieses Feld
"+"alle einfachen Felder (Text, Zahl, Datum, Boolean)
"*"alle einfachen Felder plus alle Referenzen, letztere nur mit id
{ "field": …, "response": […] }eine Referenz ausbauen
excludeeinzelne Felder aus + oder * herausnehmen

Erst schauen, was es gibt:

Terminal-Fenster
curl -X GET ".../crm/customer/read/$ID" -H "Authorization: Bearer $TOKEN"

Das entspricht ["*"] und zeigt alle verfügbaren Felder samt Referenz-IDs.

Dann gezielt anfordern:

{ "response": ["id", "name", "email", "createdOn"] }

Das ist die Form, die in Produktion gehört: Sie überträgt genau das Nötige und bleibt stabil, wenn das Modell um Felder wächst.

Eine Einzelreferenz:

{
"response": [
"id", "name",
{ "field": "address", "response": ["street", "city", "zip"] }
]
}

Eine Liste — mit eigenem Filter, eigener Sortierung, eigener Seitengröße:

{
"response": [
"id", "name",
{
"field": "orders",
"response": ["id", "total", "status"],
"parameter": {
"limit": 10,
"order": [{ "field": "total", "order": "DESC" }],
"query": {
"type": "AND",
"filter": [{ "key": "status", "value": "OPEN", "param": "EQ" }]
}
}
}
]
}

Der Bezug zum Elternobjekt wird automatisch ergänzt — Sie filtern nur auf das, was Sie zusätzlich einschränken wollen.

Verschachtelung ist beliebig tief:

{
"response": [
"id",
{ "field": "orders", "response": [
"id",
{ "field": "items", "response": ["+"] }
]
}
]
}
flowchart LR
    A["response"] --> B{"Eintrag"}
    B -->|'+'| C["alle einfachen Felder"]
    B -->|'*'| D["einfache Felder<br/>+ Referenzen mit nur 'id'"]
    B -->|"'name*'"| E["alle Felder, die mit 'name' beginnen"]
    B -->|"'*Datum'"| F["alle Felder, die auf 'Datum' enden"]
    B -->|"{ field }"| G["Referenz mit eigener Auswahl"]

Auch mit * bekommen Sie Referenzen nur als ID, nie als vollständiges Objekt. Das ist Absicht: Sonst zöge ein einziger Request unabsehbar viele Daten nach. Wollen Sie mehr, bauen Sie die Referenz ausdrücklich aus.

Was passiertUrsacheLösung
400, responseresponse fehlt oder ist leerimmer angeben, notfalls ["id"]
Feld fehlt in der Antwort, obwohl angefordertkeine Leseberechtigung für dieses FeldRechte prüfen über /cias/fetch
Referenz ist { "id": "…" } statt eines Objektsmit * angefordertReferenz ausdrücklich ausbauen
Antwort dauert langezu tief verschachtelt oder ohne limit in einer ListenreferenzTiefe reduzieren, limit setzen
Feld erscheint trotz excludees wurde zusätzlich namentlich genanntexclude wirkt nur auf Wildcards

Liste und Detail trennen. In der Übersicht nur die angezeigten Spalten lesen, beim Öffnen eines Eintrags nachladen:

// Liste
{ "response": ["id", "name", "status"], "parameter": { "limit": 25 } }
// Detail
{ "response": ["+", { "field": "orders", "response": ["id", "total"] }] }

Nicht auf Feldreihenfolge oder Vollständigkeit bauen. Die Antwort enthält, was erlaubt und angefordert ist. Behandeln Sie fehlende Felder im Client als Normalfall, nicht als Fehler.

Einzelobjekt:

{ "data": { "id": "…", "name": "…" }, "meta": { "error": false } }

Liste:

{
"data": [ { "id": "…" } ],
"meta": { "totalCount": 42, "currentPage": 0, "currentPageSize": 25, "currentLimit": 25 }
}

Mehr zur Mechanik dahinter unter Response Requests.