Zum Inhalt springen
API-Referenz

API-Referenz

KitaManager bietet eine REST-API mit interaktiver OpenAPI/Swagger-Dokumentation unter /swagger/index.html beim Ausführen der Anwendung. Alle Endpunkte außer Login und Token-Aktualisierung erfordern eine JWT-Authentifizierung. Mutierende Anfragen (POST, PUT, DELETE) erfordern ein CSRF-Token über den X-CSRF-Token-Header.

Authentifizierung

MethodeEndpunktBeschreibung
POST/api/v1/loginAuthentifizierung und Erhalt von Access- und Refresh-Token
POST/api/v1/refreshAbgelaufenes Access-Token erneuern
POST/api/v1/logoutAktuelle Sitzung beenden
GET/api/v1/meProfil des aktuellen Benutzers abrufen
PUT/api/v1/me/passwordPasswort des aktuellen Benutzers ändern

Login-Beispiel

curl -X POST http://localhost:8080/api/v1/login \
  -H "Content-Type: application/json" \
  -d '{"email": "admin@example.com", "password": "admin123"}'

Antwort:

{
  "token": "eyJhbGciOiJIUzI1NiIs..."
}

Verwendung des Tokens

Fügen Sie das Token im Authorization-Header für alle nachfolgenden Anfragen ein:

curl http://localhost:8080/api/v1/organizations \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Organisationen

MethodeEndpunktBeschreibung
GET/api/v1/organizationsOrganisationen auflisten
POST/api/v1/organizationsOrganisation erstellen (Superadmin)
GET/api/v1/organizations/{orgId}Organisation abrufen
PUT/api/v1/organizations/{orgId}Organisation aktualisieren
DELETE/api/v1/organizations/{orgId}Organisation löschen (Superadmin)

Bereiche

Alle Bereich-Endpunkte sind einer Organisation zugeordnet: /api/v1/organizations/{orgId}/sections.

MethodeEndpunktBeschreibung
GET.../sectionsBereiche auflisten
POST.../sectionsBereich erstellen
GET.../sections/{sectionId}Bereich abrufen
PUT.../sections/{sectionId}Bereich aktualisieren
DELETE.../sections/{sectionId}Bereich löschen

Mitarbeiter

Alle Mitarbeiter-Endpunkte sind einer Organisation zugeordnet: /api/v1/organizations/{orgId}/employees.

MethodeEndpunktBeschreibung
GET.../employeesMitarbeiter auflisten
POST.../employeesMitarbeiter erstellen
GET.../employees/{id}Mitarbeiter abrufen
PUT.../employees/{id}Mitarbeiter aktualisieren
DELETE.../employees/{id}Mitarbeiter löschen
GET.../employees/export/excelMitarbeiter als Excel exportieren
GET.../employees/export/yamlMitarbeiter als YAML exportieren
POST.../employees/importMitarbeiter aus YAML importieren
GET.../employees/step-promotionsStufenaufstiege abrufen

Mitarbeiterverträge

Verschachtelt unter einem Mitarbeiter: .../employees/{id}/contracts.

MethodeEndpunktBeschreibung
GET.../contractsVerträge auflisten
POST.../contractsVertrag erstellen
GET.../contracts/currentAktuellen aktiven Vertrag abrufen
GET.../contracts/{contractId}Vertrag abrufen
PUT.../contracts/{contractId}Vertrag aktualisieren
DELETE.../contracts/{contractId}Vertrag löschen

Kinder

Alle Kind-Endpunkte sind einer Organisation zugeordnet: /api/v1/organizations/{orgId}/children.

MethodeEndpunktBeschreibung
GET.../childrenKinder auflisten
POST.../childrenKind erstellen
GET.../children/{id}Kind abrufen
PUT.../children/{id}Kind aktualisieren
DELETE.../children/{id}Kind löschen
GET.../children/export/excelKinder als Excel exportieren
GET.../children/export/yamlKinder als YAML exportieren
POST.../children/importKinder aus YAML importieren
GET.../children/attendanceOrganisationsweite Anwesenheit nach Datum
GET.../children/attendance/summaryTägliche Anwesenheitsübersicht

Kinderverträge

Verschachtelt unter einem Kind: .../children/{id}/contracts.

MethodeEndpunktBeschreibung
GET.../contractsVerträge auflisten
POST.../contractsVertrag erstellen
GET.../contracts/currentAktuellen aktiven Vertrag abrufen
GET.../contracts/{contractId}Vertrag abrufen
PUT.../contracts/{contractId}Vertrag aktualisieren
DELETE.../contracts/{contractId}Vertrag löschen

Anwesenheit

Verschachtelt unter einem Kind: .../children/{id}/attendance.

MethodeEndpunktBeschreibung
POST.../attendanceAnwesenheitseintrag erstellen
GET.../attendanceAnwesenheitseinträge des Kindes auflisten
GET.../attendance/{attendanceId}Anwesenheitseintrag abrufen
PUT.../attendance/{attendanceId}Anwesenheitseintrag aktualisieren
DELETE.../attendance/{attendanceId}Anwesenheitseintrag löschen

Landesförderungssätze

Globale Ressource, verwaltet von Superadmins.

MethodeEndpunktBeschreibung
GET/api/v1/government-funding-ratesFörderungskonfigurationen auflisten
POST/api/v1/government-funding-ratesFörderungskonfiguration erstellen
GET/api/v1/government-funding-rates/{id}Förderungskonfiguration abrufen
PUT/api/v1/government-funding-rates/{id}Förderungskonfiguration aktualisieren
DELETE/api/v1/government-funding-rates/{id}Förderungskonfiguration löschen
POST/api/v1/government-funding-rates/importFörderungssätze aus YAML importieren

Förderungszeiträume

Verschachtelt unter einem Förderungssatz: .../government-funding-rates/{id}/periods.

MethodeEndpunktBeschreibung
POST.../periodsZeitraum erstellen
GET.../periods/{periodId}Zeitraum abrufen
PUT.../periods/{periodId}Zeitraum aktualisieren
DELETE.../periods/{periodId}Zeitraum löschen

Förderungseigenschaften

Verschachtelt unter einem Zeitraum: .../periods/{periodId}/properties.

MethodeEndpunktBeschreibung
POST.../propertiesEigenschaft erstellen
GET.../properties/{propertyId}Eigenschaft abrufen
PUT.../properties/{propertyId}Eigenschaft aktualisieren
DELETE.../properties/{propertyId}Eigenschaft löschen

Landesförderungsabrechnungen

Einer Organisation zugeordnet: /api/v1/organizations/{orgId}/government-funding-bills.

MethodeEndpunktBeschreibung
GET.../government-funding-billsAbrechnungen auflisten
POST.../government-funding-billsISBJ-Abrechnung hochladen
GET.../government-funding-bills/{billId}Abrechnung abrufen
GET.../government-funding-bills/{billId}/compareBerechnete und abgerechnete Beträge vergleichen
DELETE.../government-funding-bills/{billId}Abrechnung löschen

Vergütungspläne

Einer Organisation zugeordnet: /api/v1/organizations/{orgId}/pay-plans.

MethodeEndpunktBeschreibung
GET.../pay-plansVergütungspläne auflisten
POST.../pay-plansVergütungsplan erstellen
GET.../pay-plans/{id}Vergütungsplan abrufen
PUT.../pay-plans/{id}Vergütungsplan aktualisieren
DELETE.../pay-plans/{id}Vergütungsplan löschen
GET.../pay-plans/{id}/exportVergütungsplan als YAML exportieren
POST.../pay-plans/importVergütungsplan aus YAML importieren

Vergütungsplan-Zeiträume

Verschachtelt unter einem Vergütungsplan: .../pay-plans/{id}/periods.

MethodeEndpunktBeschreibung
POST.../periodsZeitraum erstellen
GET.../periods/{periodId}Zeitraum abrufen
PUT.../periods/{periodId}Zeitraum aktualisieren
DELETE.../periods/{periodId}Zeitraum löschen

Vergütungsplan-Einträge

Verschachtelt unter einem Zeitraum: .../periods/{periodId}/entries.

MethodeEndpunktBeschreibung
POST.../entriesEintrag erstellen
GET.../entries/{entryId}Eintrag abrufen
PUT.../entries/{entryId}Eintrag aktualisieren
DELETE.../entries/{entryId}Eintrag löschen

Budgetposten

Einer Organisation zugeordnet: /api/v1/organizations/{orgId}/budget-items.

MethodeEndpunktBeschreibung
GET.../budget-itemsBudgetposten auflisten
POST.../budget-itemsBudgetposten erstellen
GET.../budget-items/{id}Budgetposten abrufen
PUT.../budget-items/{id}Budgetposten aktualisieren
DELETE.../budget-items/{id}Budgetposten löschen

Budgetposten-Einträge

Verschachtelt unter einem Budgetposten: .../budget-items/{id}/entries.

MethodeEndpunktBeschreibung
GET.../entriesEinträge auflisten
POST.../entriesEintrag erstellen
GET.../entries/{entryId}Eintrag abrufen
PUT.../entries/{entryId}Eintrag aktualisieren
DELETE.../entries/{entryId}Eintrag löschen

Statistiken

Einer Organisation zugeordnet: /api/v1/organizations/{orgId}/statistics. Alle Statistik-Endpunkte erfordern die Abfrageparameter from und to zur Angabe eines Datumsbereichs (Format: YYYY-MM-DD).

MethodeEndpunktBeschreibung
GET.../statistics/staffing-hoursÜbersicht der Personalstunden
GET.../statistics/staffing-hours/employeesPersonalstunden pro Mitarbeiter
GET.../statistics/financialsFinanzübersicht
GET.../statistics/occupancyBelegungsstatistiken
GET.../statistics/age-distributionAltersverteilung
GET.../statistics/contract-propertiesVerteilung der Vertragseigenschaften
GET.../statistics/fundingFörderungsstatistiken

Benutzer

Globale Endpunkte zur Benutzerverwaltung.

MethodeEndpunktBeschreibung
GET/api/v1/usersBenutzer auflisten
POST/api/v1/usersBenutzer erstellen
GET/api/v1/users/{id}Benutzer abrufen
PUT/api/v1/users/{id}Benutzer aktualisieren
DELETE/api/v1/users/{id}Benutzer löschen
GET/api/v1/users/{id}/membershipsOrganisationsmitgliedschaften des Benutzers abrufen
POST/api/v1/users/{id}/organizationsBenutzer einer Organisation hinzufügen
PUT/api/v1/users/{id}/organizations/{orgId}Rolle des Benutzers in der Organisation aktualisieren
DELETE/api/v1/users/{id}/organizations/{orgId}Benutzer aus Organisation entfernen
PUT/api/v1/users/{id}/passwordPasswort des Benutzers zurücksetzen (Admin)
PUT/api/v1/users/{id}/superadminSuperadmin-Status festlegen

Organisationsbenutzer

MethodeEndpunktBeschreibung
GET/api/v1/organizations/{orgId}/usersBenutzer einer Organisation auflisten

Paginierung

Listen-Endpunkte unterstützen Paginierung über Abfrageparameter:

curl "http://localhost:8080/api/v1/organizations?page=1&limit=10" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Antwort:

{
  "data": [],
  "total": 100,
  "page": 1,
  "limit": 10
}

Fehlerantworten

Fehler werden mit dem entsprechenden HTTP-Statuscode und einem JSON-Body zurückgegeben:

{
  "error": "Beschreibung des Fehlers"
}
StatusBedeutung
400Bad Request – Ungültige Eingabe oder fehlende Pflichtparameter
401Unauthorized – Fehlender oder ungültiger Authentifizierungstoken
403Forbidden – Unzureichende Berechtigungen für die angeforderte Aktion
404Not Found – Die angeforderte Ressource existiert nicht
500Internal Server Error – Ein unerwarteter Fehler ist aufgetreten