Schnellstart
Diese Seite führt einmal durch: anmelden, Space finden, Grid lesen, Eintrag schreiben. Alle Aufrufe laufen gegen https://app.apptivegrid.de.
Vorbereitung: ein API-Schlüssel mit der Rolle Admin aus Profil & Einstellungen → API Zugangsdaten. → Authentifizierung
export APPTIVE_KEY="…"
export APPTIVE_SECRET="…"
export BASE="https://app.apptivegrid.de"1. Die eigene Benutzerkennung holen
curl -sL -u "$APPTIVE_KEY:$APPTIVE_SECRET" "$BASE/api/users/me"/api/users/me antwortet mit 302 und dem eigenen Pfad im Location-Header; -L folgt ihm und liefert die Benutzerressource. Die Kennung steht dort unter id:
export USER_ID=$(curl -sL -u "$APPTIVE_KEY:$APPTIVE_SECRET" "$BASE/api/users/me" \
| python3 -c 'import json,sys; print(json.load(sys.stdin)["id"])')2. Spaces auflisten
curl -s -u "$APPTIVE_KEY:$APPTIVE_SECRET" "$BASE/api/users/$USER_ID/spaces"{
"page": 1,
"pageSize": 300,
"size": 2,
"numberOfItems": 2,
"numberOfPages": 1,
"items": [
{ "_representation": "summary", "id": "6489…", "name": "Projekte", "_links": { … } }
]
}Jede Liste in dieser API sieht so aus. → Paginierung und Filter
3. Einen Space anlegen
curl -s -X POST -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
-H "Content-Type: application/json" \
-d '{"name": "API-Test"}' \
-D - -o /dev/null \
"$BASE/api/users/$USER_ID/spaces"HTTP/1.1 201 Created
Location: /api/users/64f1…/spaces/6512…Angelegte Ressourcen antworten mit Text, nicht mit JSON
Auf ein erfolgreiches POST folgt 201 Created, der Pfad der neuen Ressource steht im Header Location, und der Rumpf ist text/plain mit dem Inhalt Created <pfad>. Wer den Rumpf als JSON parst, läuft auf einen Fehler. Lesen Sie Location (curl -D -).
export SPACE=$(curl -s -X POST -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
-H "Content-Type: application/json" -d '{"name": "API-Test"}' \
-D - -o /dev/null "$BASE/api/users/$USER_ID/spaces" \
| tr -d '\r' | awk '/^[Ll]ocation:/ {print $2}')4. Ein Grid anlegen
curl -s -X POST -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
-H "Content-Type: application/json" \
-d '{"name": "Aufgaben", "createView": true}' \
-D - -o /dev/null \
"$BASE$SPACE/grids"Auch hier steht der Pfad des neuen Grids im Location-Header.
5. Ein Feld hinzufügen
curl -s -X POST -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
-H "Content-Type: application/json" \
-d '{"name": "Titel", "type": {"name": "string"}}' \
"$BASE$GRID/ColumnAdd"Welche Typnamen es gibt, listet GET /api/types. → Grids
6. Das Schema lesen
Bevor Sie schreiben, brauchen Sie die Feld-IDs:
curl -s -u "$APPTIVE_KEY:$APPTIVE_SECRET" "$BASE$GRID/schema"Alternativ liefert das Grid selbst mit Accept: …;version=2 die vollständigen Felder mit:
curl -s -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
-H "Accept: application/vnd.apptivegrid.hal;version=2" \
"$BASE$GRID"7. Einen Eintrag schreiben
Ohne layout erwartet das Anlegen das indexed-Layout: ein Array fields mit genau so vielen Werten, wie das Grid Felder hat, in Schemareihenfolge.
curl -s -X POST -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
-H "Content-Type: application/json" \
-d '{"fields": ["Erste Aufgabe", null, null]}' \
-D - -o /dev/null \
"$BASE$GRID/entities"Mit ?layout=field sprechen Sie Felder stattdessen über ihre IDs an — robuster, wenn sich das Schema ändern kann:
curl -s -X POST -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
-H "Content-Type: application/json" \
-d '{"6512abcd…": "Erste Aufgabe"}' \
"$BASE$GRID/entities?layout=field"→ Einträge
8. Einträge lesen
curl -s -u "$APPTIVE_KEY:$APPTIVE_SECRET" \
"$BASE$GRID/entities?layout=field&pageSize=50"{
"page": 1, "pageSize": 50, "size": 1, "numberOfItems": 1, "numberOfPages": 1,
"items": [
{
"_representation": "full",
"_id": "6512ef…",
"6512abcd…": "Erste Aufgabe",
"_links": { "self": { "href": "…", "method": "get" } }
}
]
}Weiter
| Thema | Seite |
|---|---|
| Wie Antworten aufgebaut sind | Überblick |
| Spaces verwalten und freigeben | Spaces |
| Felder, Ansichten, CSV-Export | Grids |
| Layouts, Änderungen, Löschen | Einträge |
| Seitenweise lesen, filtern, sortieren | Paginierung und Filter |
| Statuscodes und Fehlerrümpfe | Fehlerbehandlung |