🧩 SOA – Service-Oriented Architecture Project
🚀 Quick Start
-
Start the application stack:
docker compose up -d --build
-
Initialize Keycloak configuration:
./setup-keycloak.sh
-
Update your /etc/hosts
file:
127.0.0.1 api.local auth.local
🔐 Credentials
Keycloak Admin Panel
Private API User
- 👤 Username:
alexis
- 🔑 Password:
password
🗂️ Public API Endpoints Overview
All routes are prefixed with /api/public
.
Method |
Endpoint |
Description |
GET |
/artists |
List all public artists |
GET |
/galleries |
List all public galleries |
GET |
/galleries/{gallery}/artworks |
List artworks for a public gallery |
🗂️ Private API Endpoints Overview
All routes are prefixed with /api/private
and require a Bearer token.
👤 User
Method |
Endpoint |
Description |
GET |
/me |
Get current user's profile |
PUT |
/me |
Update current user's profile |
🖼️ Galleries
Method |
Endpoint |
Description |
GET |
/galleries |
List all accessible galleries |
GET |
/galleries/mine |
List galleries owned by the user |
POST |
/gallery |
Create a new gallery |
GET |
/gallery/{gallery_id} |
Get details of a specific gallery |
PUT |
/gallery/{gallery_id} |
Update a gallery (owner only) |
👥 Members
Method |
Endpoint |
Description |
GET |
/gallery/{gallery_id}/members |
List members of a gallery |
📩 Invitations
Method |
Endpoint |
Description |
POST |
/gallery/{gallery_id}/invite |
Invite user to a gallery |
PUT |
/invitations/{gallery_id}/respond |
Accept or reject invitation |
GET |
/invitations/received |
List received invitations |
🖼️ Artworks
Method |
Endpoint |
Description |
GET |
/gallery/{gallery_id}/artworks |
List artworks in a gallery |
POST |
/gallery/{gallery_id}/artwork |
Add artwork to gallery (owner only) |
GET |
/artwork/{artwork_id} |
Get details of an artwork |
PUT |
/artwork/{artwork_id} |
Update an artwork (creator only) |
GET |
/artworks/mine |
List artworks created by the user |
📝 Gallery Reviews
Method |
Endpoint |
Description |
GET |
/gallery/{gallery_id}/reviews |
List reviews for a gallery |
POST |
/gallery/{gallery_id}/review |
Submit a review for a gallery |
PUT |
/galleries/review/{review_id} |
Update a gallery review (author only) |
GET |
/galleries/reviews/given |
Reviews written by the user |
GET |
/galleries/reviews/received |
Reviews received on user’s galleries |
📝 Artwork Reviews
Method |
Endpoint |
Description |
GET |
/artwork/{artwork_id}/reviews |
List reviews for an artwork |
POST |
/artwork/{artwork_id}/review |
Submit a review for an artwork |
PUT |
/artworks/review/{review_id} |
Update an artwork review (author only) |
GET |
/artworks/reviews/given |
Reviews written by the user |
GET |
/artworks/reviews/received |
Reviews received on user’s artworks |
Public API:
Routes :
GET|HEAD api/artists
GET|HEAD api/galleries
GET|HEAD api/galleries/{gallery}/artworks