Hopp til hovedinnhold

Endepunktreferanse

Denne seksjonen dokumenterer alle REST-endepunkter som eksponeres av ChurchApps API. Hver modulsside lister opp alle ruter med HTTP-metode, sti, autentiseringskrav og nødvendige tillatelser.

Basis-URL

MiljøURL
Lokal utviklinghttp://localhost:8084
Produksjonhttps://api.churchapps.org

Forespørselskonvensjoner

  • Content-Type: Alle forespørsels- og responslegemer bruker application/json
  • Flerleietaker: Hver autentisert forespørsel er avgrenset til en churchId hentet fra JWT-tokenet -- du sender ikke churchId i URL-en
  • Masselagring: De fleste POST-endepunkter aksepterer en liste med objekter. API-et vil sette inn nye oppføringer (uten id-felt) og oppdatere eksisterende (med id-felt) i ett enkelt kall
  • ID-er: Alle enhets-ID-er er UUID-er

Eksempel: Masselagring

POST /membership/people
Authorization: Bearer <token>

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

Det første objektet opprettes (nytt); det andre oppdateres (har id).

Responsformat

Vellykkede responser returnerer JSON -- enten et enkelt objekt eller en liste. Feilresponser bruker standard HTTP-statuskoder:

KodeBetydning
200Suksess
400Ugyldig forespørsel (valideringsfeil)
401Uautorisert (manglende/ugyldig token eller utilstrekkelige tillatelser)
404Ikke funnet
500Serverfeil

Valideringsfeil returnerer:

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

Hvordan lese endepunkttabeller

Hver modulsside organiserer endepunkter etter kontroller. Tabellene bruker disse kolonnene:

KolonneBeskrivelse
MethodHTTP-metode (GET, POST, DELETE)
PathRutesti relativ til kontrollerens basissti
AuthJWT = krever Bearer-token, Public = ingen autentisering kreves
PermissionNødvendig tillatelse (f.eks. People.Edit). betyr enhver autentisert bruker
DescriptionHva endepunktet gjør

Kontrollere som utvider standard CRUD-baseklassen gir fire endepunkter automatisk: GET / (list alle), GET /:id (hent etter ID), POST / (opprett/oppdater) og DELETE /:id (slett).

Rapportmodul

Rapportmodulen fungerer annerledes enn de andre modulene. I stedet for databasebasert CRUD, laster den rapportdefinisjoner fra JSON-filer på disk og kjører parametriserte SQL-spørringer.

MethodPathAuthDescription
GET/reporting/reports/:keyNameJWTLast en rapportdefinisjon etter nøkkelnavn
GET/reporting/reports/:keyName/runJWTKjør en rapport og returner resultater

Rapportparametere sendes som spørringsstrengverdier (f.eks. ?startDate=2024-01-01&endDate=2024-12-31). churchId-parameteren injiseres automatisk fra JWT-tokenet. Hver rapportdefinisjon kan spesifisere sine egne tillatelseskrav.

Moduloversikt

ModulBasisstiBeskrivelse
Authentication/membership/users, /membership/oauthInnlogging, registrering, JWT-tokens, OAuth, tillatelser
Membership/membership/*Personer, kirker, grupper, husstander, roller, skjemaer, innstillinger
Attendance/attendance/*Campus, gudstjenester, økter, besøk, innsjekkingsregistreringer
Content/content/*Sider, prekener, hendelser, filer, gallerier, Bibel, strømming
Giving/giving/*Gaver, fond, betalingsportaler, abonnementer
Messaging/messaging/*Samtaler, varsler, enheter, SMS
Doing/doing/*Planer, oppgaver, tildelinger, automatiseringer, planlegging