Skip to content

API — Przegląd

Lumos Islands udostępnia dwa zestawy endpointów:

PrefixKonsumentOpis
/app/*Aplikacja mobilna (Flutter)Wszystkie operacje dziecka i rodzica
/api/*Manager-Content (Web)Integracje panelu zarządzania

Base URL

Produkcja:  https://api.lumos-islands.pl
Staging:    https://api-staging.lumos-islands.pl
Lokalne:    http://localhost:8080

Konwencje

Envelope odpowiedzi

Sukces:

json
{
  "data": { "id": "abc-123", "name": "Wyspy Odkrywców" }
}

Błąd:

json
{
  "error": {
    "code": "INVALID_PIN",
    "message": "PIN musi składać się z 4 cyfr."
  }
}

Kody błędów

HTTPcodeOpis
400VALIDATION_ERRORNieprawidłowe dane wejściowe
401UNAUTHORIZEDBrak lub wygasły token
403FORBIDDENBrak uprawnień
404NOT_FOUNDZasób nie istnieje
409CONFLICTDuplikat lub konflikt stanu
429RATE_LIMITEDZbyt wiele żądań
500INTERNAL_ERRORBłąd serwera

Autentykacja

Wszystkie chronione endpointy wymagają nagłówka:

Authorization: Bearer <token>

Token JWT jest zwracany po rejestracji lub logowaniu.

Paginacja — aplikacja mobilna (/app/*)

Kursorowa — zapewnia stabilne stronicowanie nawet przy zmieniających się danych.

GET /app/worlds?cursor=eyJpZCI6NDJ9&limit=20
json
{
  "data": [
    { "id": "w1", "name": "Świat Liter" }
  ],
  "next_cursor": "eyJpZCI6NjJ9",
  "has_more": true
}
ParametrTypDomyślnieOpis
cursorstringKursor z poprzedniej odpowiedzi
limitint20Maks. liczba elementów (1–100)

Nagłówki opcjonalne

NagłówekWymaganyOpis
X-TimezonenieStrefa czasowa klienta (np. Europe/Warsaw). Używany do obliczania streaka dziennego. Domyślnie UTC.

Paginacja — panel web (/api/*, HTMX)

Offset-based — wygodna dla tabel z numeracją stron.

GET /api/content?page=2&per_page=20

Odpowiedź HTMX zawiera fragment HTML z nagłówkami:

X-Total-Count: 154
X-Page: 2
X-Per-Page: 20

Rate Limiting

Grupa endpointówLimitOkno
POST /app/auth/*10 req1 min
POST /api/auth/*10 req1 min
GET /app/*100 req1 min
POST /app/*30 req1 min
Upload (multipart)5 req1 min

Przy przekroczeniu limitu serwer zwraca 429 Too Many Requests.

Mapa endpointów

Autentykacja — szczegóły

MetodaEndpointOpis
POST/app/auth/register/childRejestracja profilu dziecka
POST/app/auth/register/parentRejestracja rodzica (e-mail)
POST/app/auth/verify-emailWeryfikacja kodu e-mail
POST/app/auth/login/childLogowanie dziecka (PIN)
POST/app/auth/login/parentLogowanie rodzica (e-mail)
POST/app/auth/link/generateGeneruj kod łączenia
POST/app/auth/link/redeemZrealizuj kod łączenia
POST/app/auth/manager-codeKod logowania do managera
GET/app/auth/profilesLista profili na urządzeniu

Światy — szczegóły

MetodaEndpointOpis
GET/app/worldsLista światów (globus)
GET/app/worlds/:idSzczegóły świata
GET/app/worlds/:id/locationsLokacje na mapie

Planety — szczegóły

MetodaEndpointOpis
GET/app/planets/openOtwarte planety
GET/app/planets/mineMoje planety
POST/app/planets/:id/joinDołącz do planety
POST/app/planets/:id/leaveOpuść planetę

Lokacje — szczegóły

MetodaEndpointOpis
GET/app/locations/:idSzczegóły lokacji + zadania

Zadania — szczegóły

MetodaEndpointOpis
GET/app/tasks/:idPełne dane zadania
POST/app/tasks/:id/startRozpocznij zadanie
POST/app/tasks/:id/completeUkończ zadanie
POST/app/tasks/:id/submit-creativeWyślij pracę kreatywną

Użytkownicy i Awatar — szczegóły

MetodaEndpointOpis
GET/app/users/meProfil użytkownika
PATCH/app/users/meAktualizuj profil
GET/app/users/me/statsStatystyki
GET/app/users/me/badgesZdobyte odznaki
GET/app/avatar/itemsKatalog przedmiotów awatara
PATCH/app/avatarZmień wygląd awatara

Todo — szczegóły

MetodaEndpointOpis
GET/app/todosLista zadań do zrobienia
POST/app/todosDodaj zadanie
PATCH/app/todos/:idZmień status
DELETE/app/todos/:idUsuń zadanie

Poziomy, Ranking, Onboarding — szczegóły

MetodaEndpointOpis
GET/app/levelsDefinicje poziomów
GET/app/rankingsTablica wyników
GET/app/onboarding/statusStatus onboardingu
POST/app/onboarding/completeZakończ onboarding

Manager API (Web) — szczegóły

MetodaEndpointOpis
POST/api/auth/verify-codeWeryfikacja kodu logowania
POST/api/auth/send-email-codeWyślij kod e-mail

Web Routes (SSR) — szczegóły

Strony i fragmenty HTMX panelu Manager-Content.

Lumos Islands v2 - Dokumentacja Projektowa