Skip to content

About

Bezpieczne REST API do zarządzania zasobami grafu wiedzy. Projekt zbudowany w ekosystemie Spring Boot, implementujący zaawansowaną, bezstanową autoryzację JWT (Spring Security) oraz relacyjną bazę PostgreSQL z globalną obsługą błędów.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

36 Commits

Folders and files

Repository files navigation

Knowledge Graph API

Java Spring Boot PostgreSQL JWT

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.

🚀 Główne funkcjonalności

  • Zaawansowana autoryzacja (JWT): Implementacja Spring Security z wykorzystaniem JSON Web Tokens. Obsługa cyklu życia tokenów, w tym generowanie Access Token oraz bezpieczny mechanizm Refresh 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 GlobalExceptionHandler zapewniają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.

🛠️ Stack technologiczny

  • 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)

⚙️ Wymagania i uruchomienie

Aby uruchomić aplikację lokalnie, musisz skonfigurować środowisko:

  1. Sklonuj repozytorium

    git clone https://github.com/Darsonn/KnowledgeGraphAPI.git
    cd KnowledgeGraphAPI
  2. Zmienne środowiskowe Aplikacja wymaga ustawienia następujących zmiennych w środowisku lub bezpośrednio w pliku application.properties:

    • DB_URL - URL do bazy PostgreSQL
    • DB_USER / DB_PASSWORD - dane logowania do bazy
    • JWT_TOKEN - silny klucz sekretny (HMAC) do podpisywania tokenów
    • JWT_EXPIRATION / JWT_REFRESH_TOKEN_EXPIRATION - czas wygasania tokenów w milisekundach
  3. Uruchomienie za pomocą Maven Wrapper Aplikacja korzysta z wbudowanego wrappera Mavena, więc nie musisz mieć zainstalowanego Mavena globalnie:

    ./mvnw spring-boot:run

📖 Endpointy API

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.

About

Bezpieczne REST API do zarządzania zasobami grafu wiedzy. Projekt zbudowany w ekosystemie Spring Boot, implementujący zaawansowaną, bezstanową autoryzację JWT (Spring Security) oraz relacyjną bazę PostgreSQL z globalną obsługą błędów.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages