Zaawansowane REST API zbudowane w oparciu o najnowsze standardy ekosystemu Spring Boot. Aplikacja służy jako backend do zarządzania zasobami grafu wiedzy (węzły informacji i tagi), zapewniając wysoki poziom bezpieczeństwa dzięki bezstanowej autoryzacji.
- Zaawansowana autoryzacja (JWT): Implementacja Spring Security z wykorzystaniem JSON Web Tokens. Obsługa cyklu życia tokenów, w tym generowanie
Access Tokenoraz bezpieczny mechanizmRefresh Token. - Zarządzanie wiedzą (CRUD): Pełna obsługa encji bazodanowych (Memories, Tags) powiązanych z kontem konkretnego, zalogowanego użytkownika.
- Relacyjna baza danych: Wykorzystanie PostgreSQL wraz ze Spring Data JPA / Hibernate do modelowania powiązań między użytkownikami, wspomnieniami i tagami.
- Globalna obsługa błędów: Wdrożony
GlobalExceptionHandlerzapewniający spójne i czytelne odpowiedzi błędów (ErrorResponse) we wszystkich endpointach API (np. dla ResourceNotFoundException, DuplicateException). - Dockeryzacja: Projekt przygotowany do łatwego wdrożenia dzięki dołączonemu plikowi
Dockerfile.
- Java 25
- Spring Boot 4.0.2 (Web, Data JPA, Security)
- PostgreSQL (baza danych)
- JJWT (Java JWT) (wersja 0.11.5)
- Lombok
- Maven (budowanie projektu)
Aby uruchomić aplikację lokalnie, musisz skonfigurować środowisko:
-
Sklonuj repozytorium
git clone https://github.com/Darsonn/KnowledgeGraphAPI.git cd KnowledgeGraphAPI -
Zmienne środowiskowe Aplikacja wymaga ustawienia następujących zmiennych w środowisku lub bezpośrednio w pliku
application.properties:DB_URL- URL do bazy PostgreSQLDB_USER/DB_PASSWORD- dane logowania do bazyJWT_TOKEN- silny klucz sekretny (HMAC) do podpisywania tokenówJWT_EXPIRATION/JWT_REFRESH_TOKEN_EXPIRATION- czas wygasania tokenów w milisekundach
-
Uruchomienie za pomocą Maven Wrapper Aplikacja korzysta z wbudowanego wrappera Mavena, więc nie musisz mieć zainstalowanego Mavena globalnie:
./mvnw spring-boot:run
Aplikacja udostępnia m.in. następujące kluczowe zbiory endpointów:
POST /auth/register|POST /auth/login|POST /auth/refresh-token- zarządzanie sesją użytkownika.GET /health- publiczny endpoint weryfikujący stan aplikacji.GET /memories|POST /memories|PUT /memories/{id}|DELETE /memories/{id}- autoryzowane zarządzanie zasobami (Memories).- Podobne operacje dla modułu Tagów i Konta Użytkownika.