Microservice based music streaming service
docker exec -it spotimann_keycloak_1 /opt/jboss/keycloak/bin/standalone.sh -Djboss.socket.binding.port-offset=100 -Dkeycloak.migration.action=export -Dkeycloak.migration.provider=singleFile -Dkeycloak.migration.realmName=spotimann -Dkeycloak.migration.usersExportStrategy=REALM_FILE -Dkeycloak.migration.file=/store/spotimann.json
docker-compose up --build
Service | Container-Name | Port im Localhost | Port im Container |
---|---|---|---|
Vue Frontend | vue-frontend | 3000 | 8080 |
Song Information Service | database-song-information-service | 3001 | 8080 |
Song Information Database | database-song-information-service | 27017 | 27017 |
Rating Service | database-rating-service | 3001 | 8080 |
Rating Database | database-rating-service | 27018 | 27017 |
Streaming Service | node-song-streaming-service | 3003 | 8080 |
Keycloak | Keycloak | 8180 | 8080 |
======= |
Dateien aus /song-streaming-service/music
werden auf Port 3003
statisch geserved.
Beispielsweise liegt /song-streaming-service/music/music.mp3
unter <hostname>:3003/music.mp3
Die ID des Songs sollte als Name der Datei verwendet werden
Sollte sich die Keycloak-Konfiguration ändern, muss der Docker-Container für Keycloak vorher gelöscht werden, damit der Import der neuen Daten erfolgreich abläuft.
Dazu muss folgender Befehl ausgeführt werden: docker rm spotimann_keycloak_1
.
Unter http://keycloak:8180/auth/realms/spotimann/protocol/openid-connect/certs kann ein JSON abgerufen werden, das Infos zu dem verwendeten Public RSA Key enthält.
Username | Passwort |
---|---|
timg | 1234 |
URL: /songID/:songID/ratings
Method: GET
Auth required: YES
Response Body:
{
"averageRating": "number (1 <= X <= 10)",
"songID": "string"
}
Jeder User kann für einen Song nur ein Rating abgeben. Hat der User bereits ein Rating abgegeben, wird das alte überschrieben.
URL: /songID/:songID/ratings
Method: POST
Auth required: YES
Request Body:
{
"rating": "number (0 < x < 11)"
}
Response Body:
empty