Zum Hauptinhalt springen

Endpoint-Referenz

Dieser Abschnitt dokumentiert alle REST-Endpoints, die von der ChurchApps API bereitgestellt werden. Jede Modulseite listet jede Route mit ihrer HTTP-Methode, ihrem Pfad, Authentifizierungsanforderungen und erforderlichen Berechtigungen auf.

Basis-URL

UmgebungURL
Lokale Entwicklunghttp://localhost:8084
Produktionhttps://api.churchapps.org

Anfrage-Konventionen

  • Content-Type: Alle Request- und Response-Bodies verwenden application/json
  • Multi-Tenant: Jede authentifizierte Anfrage wird auf einen churchId begrenzt, der aus dem JWT-Token extrahiert wird — Sie übergeben nicht churchId in der URL
  • Batch-Speichern: Die meisten POST-Endpoints akzeptieren ein Array von Objekten. Die API wird neue Datensätze einfügen (kein id-Feld) und vorhandene aktualisieren (mit id-Feld) in einem einzigen Aufruf
  • IDs: Alle Entity-IDs sind UUIDs

Beispiel: Batch-Speichern

POST /membership/people
Authorization: Bearer <token>

[
{ "firstName": "Jane", "lastName": "Doe" },
{ "id": "abc-123", "firstName": "John", "lastName": "Smith" }
]

Das erste Objekt wird erstellt (neu); das zweite wird aktualisiert (hat id).

Antwortformat

Erfolgreiche Antworten geben JSON zurück — entweder ein einzelnes Objekt oder ein Array. Fehlerantworten verwenden Standard-HTTP-Status-Codes:

CodeBedeutung
200Erfolg
400Ungültige Anfrage (Validierungsfehler)
401Nicht autorisiert (fehlender/ungültiger Token oder unzureichende Berechtigungen)
404Nicht gefunden
500Serverfehler

Validierungsfehler geben:

{
"errors": [
{ "msg": "enter a valid email address", "param": "email", "location": "body" }
]
}

Wie man Endpoint-Tabellen liest

Jede Modulseite organisiert Endpoints nach Controller. Die Tabellen verwenden diese Spalten:

SpalteBeschreibung
MethodeHTTP-Methode (GET, POST, DELETE)
PfadRoute relativ zum Basis-Pfad des Controllers
AuthJWT = Bearer-Token erforderlich, Öffentlich = keine Auth erforderlich
BerechtigungErforderliche Berechtigung (z.B. People.Edit). bedeutet jeden authentifizierten Benutzer
BeschreibungWas der Endpoint tut

Controller, die die Standard-CRUD-Basisklasse erweitern, bieten vier Endpoints automatisch: GET / (alle auflisten), GET /:id (nach ID abrufen), POST / (erstellen/aktualisieren) und DELETE /:id (löschen).

Reporting-Modul

Das Reporting-Modul funktioniert anders als die anderen Module. Statt datenbankgestütztem CRUD lädt es Berichtsdefinitionen von JSON-Dateien auf der Festplatte und führt parametrisierte SQL-Queries aus.

MethodePfadAuthBeschreibung
GET/reporting/reports/:keyNameJWTBerichtsdefinition nach Schlüsselnamen laden
GET/reporting/reports/:keyName/runJWTBericht ausführen und Ergebnisse zurückgeben

Berichtsparameter werden als Query-String-Werte übergeben (z.B. ?startDate=2024-01-01&endDate=2024-12-31). Der Parameter churchId wird automatisch aus dem JWT-Token injiziert. Jede Berichtsdefinition kann ihre eigenen Berechtigungsanforderungen angeben.

Modul-Index

ModulBasispfadBeschreibung
Authentifizierung/membership/users, /membership/oauthLogin, Registrierung, JWT-Tokens, OAuth, Berechtigungen
Membership/membership/*Personen, Kirchen, Gruppen, Haushalte, Rollen, Formulare, Einstellungen
Attendance/attendance/*Campus, Services, Sessions, Besuche, Check-in-Datensätze
Content/content/*Seiten, Predigten, Veranstaltungen, Dateien, Galerien, Bibel, Streaming
Giving/giving/*Spenden, Fonds, Payment-Gateways, Abos
Messaging/messaging/*Unterhaltungen, Benachrichtigungen, Geräte, SMS
Doing/doing/*Pläne, Aufgaben, Zuweisungen, Automatisierungen, Planung