Spring til hovedindhold

Endpoint-reference

Dette afsnit dokumenterer alle REST-endpoints, der vises af ChurchApps API. Hver modulside viser hver rute med dens HTTP-metode, sti, godkendelseskrav og påkrævede tilladelser.

Basis-URL

MiljøURL
Lokal udviklinghttp://localhost:8084
Produktionhttps://api.churchapps.org

Anmodningskonventioner

  • Content-Type: Alle anmodnings- og svarorganer bruger application/json
  • Multi-tenant: Hver godkendt anmodning er begrænset til en churchId hentet fra JWT-tokenet — du sender ikke churchId i URL'en
  • Batch-save: De fleste POST-endpoints accepterer et array af objekter. API'en indsætter nye poster (uden id-felt) og opdaterer eksisterende (med id-felt) i et enkelt kald
  • ID'er: Alle enheds-ID'er er UUID'er

Eksempel: Batch-gemme

POST /membership/people
Authorization: Bearer <token>

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

Det første objekt oprettes (nyt); det andet opdateres (har id).

Svargformat

Vellykkede svar returnerer JSON — enten et enkelt objekt eller et array. Fejlsvar bruger standard HTTP-statuskoder:

KodeBetydning
200Succes
400Dårlig anmodning (valideringsfejl)
401Uautoriseret (manglende/ugyldigt token eller utilstrækkelige tilladelser)
404Ikke fundet
500Serverfejl

Valideringsfejl returnerer:

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

Sådan læses endpoint-tabeller

Hver modulside organiserer endpoints efter controller. Tabellerne bruger disse kolonner:

KolonneBeskrivelse
MethodHTTP-metode (GET, POST, DELETE)
PathRutesti i forhold til controllerens basesti
AuthJWT = kræver Bearer-token, Public = ingen godkendelse påkrævet
PermissionPåkrævet tilladelse (f.eks. People.Edit). betyder enhver godkendt bruger
DescriptionHvad endpoints gør

Controllere, der udvider standard CRUD-basisklassen, leverer fire endpoints automatisk: GET / (list alle), GET /:id (hent efter ID), POST / (opret/opdater) og DELETE /:id (slet).

Rapporteringsmodul

Rapporteringsmodulet fungerer anderledes end de andre moduler. I stedet for database-understøttet CRUD indlæser det rapportdefinitioner fra JSON-filer på disk og udfører parametriserede SQL-forespørgsler.

MethodPathAuthDescription
GET/reporting/reports/:keyNameJWTIndlæs en rapportdefinition efter nøglenavn
GET/reporting/reports/:keyName/runJWTUdfør en rapport og returner resultater

Rapportparameters sendes som query string-værdier (f.eks. ?startDate=2024-01-01&endDate=2024-12-31). Parameteren churchId injiceres automatisk fra JWT-tokenet. Hver rapportdefinition kan angive sine egne tilladelseskrav.

Modulindeks

ModuleBase PathDescription
Authentication/membership/users, /membership/oauthLogin, registrering, JWT-tokens, OAuth, tilladelser
Membership/membership/*Mennesker, kirker, grupper, husstande, roller, formularer, indstillinger
Attendance/attendance/*Campus, tjenester, sessioner, besøg, check-in-poster
Content/content/*Sider, prædikener, begivenheder, filer, gallerier, Bibel, streaming
Giving/giving/*Donationer, fonde, betalings-gateways, abonnementer
Messaging/messaging/*Samtaler, notifikationer, enheder, SMS
Doing/doing/*Planer, opgaver, opgaver, automatisering, planlægning