5 Endpunkte
Listen
GET /api/{klasse-plural}Wird verwendet, um Objekte eines Typs aufzulisten. Bspw. können alle Veranstaltungen aufgelistet werden mit /api/veranstaltungen. Klassennamen sind immer im Plural, also z. B. veranstaltungen, anmeldungen, kontakte, … Die Ergebnismenge wird beeinflusst durch die verwendete Anfrage, diese bestimmt die ausgegebenen Felder und kann Filter, Gruppierungen und Aggregationen beinhalten. Standard-Anfragen geben üblicherweise alle Objekte ohne Filter aus.
Das Antwortformat sieht wie folgt aus:
{ "seitenindex": 1, "zeilen": 100, "zeilen_gesamt": 240, "seiten_gesamt": 3, "vorherige_seite": null, "naechste_seite": { "http_method": "GET", "url": "https://beispiel.org/api/veranstaltungen?seitenindex=2" }, "daten": [ { "autowert": "cmx682de38637859", "nummer": "213.002", "phase": "Durchführung", "ausgefallen": false, // [...] "link": { "http_method": "GET", "url": "https://beispiel.org/api/veranstaltung/cmx682de38637859" } }, // [...] ], "methoden": { "beispiel": { "http_method": "GET", "url": "https://beispiel.org/api/veranstaltung/test" } }}Listen werden immer in Seiten von 100 Einträgen unterteilt. Mit dem GET-Parameter seitenindex kann auf die Seiten zugegriffen werden. Die Endpunkte zur nächsten und vorherigen Seite werden auch als Navigationsobjekt zurück gegeben. Bei jedem aufgelisteten Objekt wird der Endpunkt für die Detailinformationen ebenfalls unter link als Navigationsobjekt. Verfügbare Klassenmethoden (ohne Bezug auf ein bestimmtes Objekt) sind ebenfalls als Navigationsobjekte unter methoden aufgelistet.
Details eines Objektes
GET /api/{klasse}/{autowert}Listet alle verfügbaren Attribute und deren Werte eines Objektes auf, sowie den eigenen Endpunkt, die Endpunkte von Kindlisten und die Endpunkte von Methoden. Hier wird der Singular verwendet, also z. B.
/api/veranstaltung/cmx682de38637859.{ "daten": { "aktiv": true, "aktuelle_teilnehmerzahl": 3, "ampeltext": "keine freien Plätze. Anmeldung auf Warteliste möglich.", "beginn_datum": "2026-05-21", "beginn_uhrzeit": "10:00:00", "f_bild": "cmx65a68ce9c0e86", "geprueft_am": null, "geprueft_von": "", "letzte_statusaenderung": "2025-05-21T16:37:10+02:00", "name": "Hanne’s und Bärbel’s Strickkurs 🧶", "nummer": "213.002" // ... }, "link": { "http_method": "GET", "url": "https://beispiel.org/api/veranstaltung/cmx682de38637859" }, "methoden": { "aktualisiere": { "http_method": "PUT", "url": "https://beispiel.org/api/veranstaltung/cmx682de38637859" }, "loesche": { "http_method": "DELETE", "url": "https://beispiel.org/api/veranstaltung/cmx682de38637859" } }, "kindlisten": { "Anmeldungen": { "http_method": "GET", "url": "https://beispiel.org/api/veranstaltung/cmx682de38637859/anmeldungen", "get_parameter": [ { "name": "seitenindex", "optional": true, "typ": "number" }, { "name": "abfrage", "optional": true, "typ": "string" } ] } // ... }}Kindlisten
GET /api/{klasse}/{autowert}/{kindklasse-plural}Listet Kindobjekte eines Objektes auf, also beispielsweise alle Anmeldungen zu einer Veranstaltung. Das Rückgabeformat ist das gleiche wie bei normalen Listen, nur ohne Methoden.
Klassenmethoden
GET/POST/PUT /api/{klasse}/{methodenname}Klassenmethoden sind Methoden, die sich nicht auf ein bestimmtes Objekt beziehen, oder das Objekt der Klasse erst erstellen (bspw. Import aus einem bestimmten Format). Die zu verwendende HTTP-Methode und GET-Parameter werden über das Endpunkt-Objekt mitgeteilt, die zu übertragenden Daten und das Antwortformat ist von der konkreten Methode abhängig. Zukünftig verfügbar werdende Methoden werden nach Möglichkeit in dieser Dokumentation aufgelistet.
Objektmethoden
GET/POST/PUT /api/{klasse}/{autowert}/{methodenname}Diese Methoden beziehen sich auf ein bestimmtes Objekt. Ansonsten gilt dasselbe wie für Klassenmethoden.
Erstellen von Objekten
POST /api/{klasse}Erstellt ein Objekt von der angegebenen Klasse. Es werden alle Standardwerte befüllt. Im Anfrage-Body können Attribute mit zu setzenden Werten angegeben werden, die direkt nach dem Erstellen gesetzt werden sollen:
{ "name": "Hanne’s und Bärbel’s Strickkurs",} Schlüssel = Attributname. Wenn die Werte nicht gesetzt werden können, wird das Objekt nicht erstellt. Das erstellte Objekt wird im Anschluss zurückgegeben.
POST /api/{klasse}/{autowert}/{kindklasse}Erstellt ein Objekt der Kindklasse, im Kontext des angegebenen Objektes. Bspw:
POST /veranstaltung/cmx682de38637859/anmeldung erstellt eine Anmeldung im Kontext der Veranstaltung mit dem gegebenen Autowert. Das heißt, dass die Verknüpfung der Anmeldung zur Veranstaltung schon automatisch gesetzt wird.Löschen von Objekten
DELETE /api/{klasse}/{autowert}Löscht das angegebene Objekt. Es werden auch die zugehörigen Kindobjekte mitgelöscht, etwa Termine beim Löschen einer Terminserie.
Setzen von Werten
PUT /api/{klasse}/{autowert}Setzt die im Body angegebenen Werte. Wenn ein Fehler auftritt, werden keine der angegebenen Werte gesetzt (also entweder wird alles oder nichts gesetzt, keine Teilmenge). Format des Anfrage-Bodys ist wie beim Erstellen von Objekten.
