Naar hoofdinhoud gaan

Endpoint Reference

Deze sectie documenteert alle REST-eindpunten die door de ChurchApps API zijn blootgesteld. Elke modulepagina geeft alle routes op met de HTTP-methode, pad, verificatievereisten en vereiste machtigingen.

Base URL

EnvironmentURL
Local developmenthttp://localhost:8084
Productionhttps://api.churchapps.org

Verzoekconventies

  • Content-Type: Alle aanvraag- en antwoordlichamen gebruiken application/json
  • Multi-tenant: Elk geverifieerd verzoek is afgestemd op een churchId die uit het JWT-token is geëxtraheerd — u geeft churchId niet door in de URL
  • Batch saves: De meeste POST-eindpunten accepteren een array van objecten. De API voegt nieuwe records in (zonder id-veld) en werkt bestaande bij (met id-veld) in één aanroep
  • IDs: Alle entiteit-ID's zijn UUID's

Voorbeeld: Batch Save

POST /membership/people
Authorization: Bearer <token>

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

Het eerste object wordt aangemaakt (nieuw); het tweede wordt bijgewerkt (heeft id).

Antwoordindeling

Succesvolle antwoorden geven JSON terug — ofwel een enkel object ofwel een array. Foutantwoorden gebruiken standaard HTTP-statuscodes:

CodeBetekenis
200Succes
400Slechte aanvraag (validatiefouten)
401Niet geverifieerd (ontbrekend/ongeldig token of onvoldoende machtigingen)
404Niet gevonden
500Serverfout

Validatiefouten geven het volgende terug:

{
"errors": [
{ "msg": "voer een geldig e-mailadres in", "param": "email", "location": "body" }
]
}

Hoe Eindpunttabellen Lezen

Elke modulepagina organiseert eindpunten per controller. De tabellen gebruiken deze kolommen:

ColumnBeschrijving
MethodHTTP-methode (GET, POST, DELETE)
PathRoutepad ten opzichte van het basispad van de controller
AuthJWT = vereist Bearer-token, Public = geen verificatie vereist
PermissionVereiste machtiging (bijv. People.Edit). betekent elke geverifieerde gebruiker
DescriptionWat het eindpunt doet

Controllers die de standaard CRUD-basisklasse uitbreiden, bieden vier eindpunten automatisch: GET / (alles weergeven), GET /:id (op ID ophalen), POST / (maken/bijwerken) en DELETE /:id (verwijderen).

Reporting Module

De Reporting module werkt anders dan de andere modules. In plaats van databasegestuurde CRUD laadt het rapportdefinities van JSON-bestanden op schijf en voert geparameteriseerde SQL-query's uit.

MethodPathAuthDescription
GET/reporting/reports/:keyNameJWTEen rapportdefinitie op sluetelnaam laden
GET/reporting/reports/:keyName/runJWTEen rapport uitvoeren en resultaten retourneren

Rapportparameters worden als querystring-waarden doorgegeven (bijv. ?startDate=2024-01-01&endDate=2024-12-31). De churchId-parameter wordt automatisch uit het JWT-token geïnjecteerd. Elke rapportdefinitie kan zijn eigen machtighingsvereisten opgeven.

Module Index

ModuleBase PathDescription
Authentication/membership/users, /membership/oauthLogin, registratie, JWT-tokens, OAuth, machtigingen
Membership/membership/*Personen, kerken, groepen, huishoudens, rollen, formulieren, instellingen
Attendance/attendance/*Campussen, diensten, sessies, bezoeken, check-in-records
Content/content/*Pagina's, preken, evenementen, bestanden, galerijen, Bijbel, streaming
Giving/giving/*Donaties, fondsen, betalingsgateways, abonnementen
Messaging/messaging/*Gesprekken, meldingen, apparaten, SMS
Doing/doing/*Plannen, taken, toewijzingen, automatiseringen, planning