🟡 GET vs. POST
GET vs. POST
Section titled “GET vs. POST”Worum geht’s hier?
Section titled “Worum geht’s hier?”In der dataCycle API werden Inhalte gelesen – entweder über GET oder POST.
- GET: Lesen über Query-Parameter
- POST: Lesen über einen Request-Body
⚠️ Wichtig: In dieser API bedeutet POST nicht automatisch „schreiben“. POST wird hier ausschließlich für komplexe Leseabfragen verwendet.
Warum gibt es POST fürs Lesen?
Section titled “Warum gibt es POST fürs Lesen?”Sobald mehrere Filter kombiniert werden, werden GET-URLs schnell:
- unübersichtlich
- fehleranfällig (Encoding, Sonderzeichen)
- schlecht wartbar
Mit POST kannst du dieselbe Abfrage strukturiert als JSON im Body senden.
GET: Lesen über Query-Parameter
Section titled “GET: Lesen über Query-Parameter”GET eignet sich besonders für:
- einfache Abfragen
- schnelle Tests
- URLs, die man teilen oder bookmarken möchte
Beispiel: Endpoint abrufen
Section titled “Beispiel: Endpoint abrufen”curl -s \ -H "Authorization: Bearer {TOKEN}" \ "{BASE_URL}/api/v4/endpoints/{ENDPOINT}"Beispiel: Paging + Volltext
Section titled “Beispiel: Paging + Volltext”curl -s \ -H "Authorization: Bearer {TOKEN}" \ "{BASE_URL}/api/v4/endpoints/{ENDPOINT}?page[size]=25&page[number]=1&filter[q]=museum"POST: Lesen mit Request-Body
Section titled “POST: Lesen mit Request-Body”POST ist sinnvoll, wenn:
- viele Filter kombiniert werden
- komplexe Werte (Listen, Bereiche) genutzt werden
- Abfragen dokumentiert oder versioniert werden sollen
Beispiel: POST-Request
Section titled “Beispiel: POST-Request”curl -s \ -H "Authorization: Bearer {TOKEN}" \ -H "Content-Type: application/json" \ -X POST \ "{BASE_URL}/api/v4/endpoints/{ENDPOINT}" \ -d '{ "filter": { "q": "museum" }, "page": { "size": 25, "number": 1 } }'➡️ Inhaltlich ist GET und POST identisch – der Unterschied liegt nur in der Darstellung der Parameter.
Wann nehme ich was?
Section titled “Wann nehme ich was?”| Situation | Empfehlung |
|---|---|
| kurzer Test | GET |
| teilbare URL | GET |
| viele Filter | POST |
| bessere Lesbarkeit | POST |
| langfristige Abfragen | POST |
Typische Fehlerquellen
Section titled “Typische Fehlerquellen”400 Bad Request
Section titled “400 Bad Request”- ungültiges JSON
- falsche Struktur im Request-Body
401 / 403
Section titled “401 / 403”- Token fehlt oder ist ungültig
- keine Berechtigung für den Endpoint
Debug-Tipp (nur Statuscode anzeigen):
curl -s -o /dev/null -w "HTTP %{http_code}\n" \ -H "Authorization: Bearer {TOKEN}" \ -H "Content-Type: application/json" \ -X POST \ "{BASE_URL}/api/v4/endpoints/{ENDPOINT}" \ -d '{}'Nächste Schritte
Section titled “Nächste Schritte”- Paging
- Suche & Volltext
- Filtern nach Klassifizierungen