Vai al contenuto principale

Riferimento Endpoint

Questa sezione documenta tutti gli endpoint REST esposti dall'API di ChurchApps. Ogni pagina del modulo elenca ogni route con il metodo HTTP, il percorso, i requisiti di autenticazione e i permessi necessari.

URL di Base

AmbienteURL
Sviluppo localehttp://localhost:8084
Produzionehttps://api.churchapps.org

Convenzioni delle Richieste

  • Content-Type: Tutti i body di richiesta e risposta usano application/json
  • Multi-tenant: Ogni richiesta autenticata è delimitata a un churchId estratto dal token JWT -- non passi churchId nell'URL
  • Salvataggi batch: La maggior parte degli endpoint POST accetta un array di oggetti. L'API inserirà nuovi record (senza campo id) e aggiornerà quelli esistenti (con campo id) in una singola chiamata
  • ID: Tutti gli ID delle entità sono UUID

Esempio: Salvataggio Batch

POST /membership/people
Authorization: Bearer <token>

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

Il primo oggetto viene creato (nuovo); il secondo viene aggiornato (ha id).

Formato della Risposta

Le risposte di successo restituiscono JSON -- un singolo oggetto o un array. Le risposte di errore usano codici di stato HTTP standard:

CodiceSignificato
200Successo
400Richiesta non valida (errori di validazione)
401Non autorizzato (token mancante/non valido o permessi insufficienti)
404Non trovato
500Errore del server

Gli errori di validazione restituiscono:

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

Come Leggere le Tabelle degli Endpoint

Ogni pagina del modulo organizza gli endpoint per controller. Le tabelle usano queste colonne:

ColonnaDescrizione
MetodoMetodo HTTP (GET, POST, DELETE)
PercorsoPercorso della route relativo al percorso base del controller
AuthJWT = richiede Bearer token, Public = nessuna autenticazione richiesta
PermessoPermesso richiesto (es. People.Edit). significa qualsiasi utente autenticato
DescrizioneCosa fa l'endpoint

I controller che estendono la classe base CRUD standard forniscono automaticamente quattro endpoint: GET / (lista tutti), GET /:id (ottieni per ID), POST / (crea/aggiorna) e DELETE /:id (elimina).

Modulo Reporting

Il modulo Reporting funziona diversamente dagli altri moduli. Invece di CRUD supportato da database, carica le definizioni dei report da file JSON su disco ed esegue query SQL parametrizzate.

MetodoPercorsoAuthDescrizione
GET/reporting/reports/:keyNameJWTCarica una definizione di report per nome chiave
GET/reporting/reports/:keyName/runJWTEsegue un report e restituisce i risultati

I parametri del report vengono passati come valori nella query string (es. ?startDate=2024-01-01&endDate=2024-12-31). Il parametro churchId viene iniettato automaticamente dal token JWT. Ogni definizione di report può specificare i propri requisiti di permesso.

Indice dei Moduli

ModuloPercorso BaseDescrizione
Autenticazione/membership/users, /membership/oauthLogin, registrazione, token JWT, OAuth, permessi
Membership/membership/*Persone, chiese, gruppi, nuclei familiari, ruoli, moduli, impostazioni
Attendance/attendance/*Sedi, servizi, sessioni, visite, registrazioni presenze
Content/content/*Pagine, sermoni, eventi, file, gallerie, Bibbia, streaming
Giving/giving/*Donazioni, fondi, gateway di pagamento, abbonamenti
Messaging/messaging/*Conversazioni, notifiche, dispositivi, SMS
Doing/doing/*Piani, attività, assegnazioni, automazioni, pianificazione