FilmDB is a demo application that allows to manage a database of films, people and their creative roles.
Running service can be accessed with the following URLs:
API root - http://localhost:8080/api
Swagger UI documentation - http://localhost:8080/swagger-ui.html
OpenAPI 3 documentation - http://localhost:8080/v3/api-docs
Authentication is implemented with JSON Web Tokens. To perform requests that chage data you must provide a valid
token in Authorization
header using the Bearer
schema. To get a token, log into /api/login
with the following
credentials:
{
"username": "admin",
"password": "password"
}
![API example API example](https://private-user-images.githubusercontent.com/24320267/273600030-bb074831-784b-4710-bf7f-ad873e903e1a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5NzcyMzAsIm5iZiI6MTcxOTk3NjkzMCwicGF0aCI6Ii8yNDMyMDI2Ny8yNzM2MDAwMzAtYmIwNzQ4MzEtNzg0Yi00NzEwLWJmN2YtYWQ4NzNlOTAzZTFhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAzVDAzMjIxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE5NDA4NjZjNjExYWI5NGE3YjBjNmVmMjA4YzY5MDA3M2YxYmNjZjY0OTkwM2ViMjdkNmE0MjM2MzY3ZDAzZDYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.HGGfI-fcWYm0Yo-Fi1drW549RJZr7L5JeseZHOy0D5U)
![Swagger example Swagger example](https://private-user-images.githubusercontent.com/24320267/331147708-207815f2-8cb7-40fe-82b2-54d6a22b79e0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5NzcyMzAsIm5iZiI6MTcxOTk3NjkzMCwicGF0aCI6Ii8yNDMyMDI2Ny8zMzExNDc3MDgtMjA3ODE1ZjItOGNiNy00MGZlLTgyYjItNTRkNmEyMmI3OWUwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAzVDAzMjIxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFjMDc0NWUzOTBiMWRiZDg2NGViYTBiYzRiZDRlZmFmOTlkZjQyMzVmN2FkMDI2MmZkYzZkZDY1MDcxMGFmYjAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.jBW6mD9MrBTVyerlHxqHsWpS7MU4VrJhY7bzEz2XyhI)
Besides using IntelliJ IDEA you can run the application with Docker by executing docker compose up
from the project
directory.
The application uses in-memory H2 database by default. To use persistent PostgreSQL database the application must be run
with postgres
profile by setting environment variable spring.profiles.active=postgres
.
To run PostgreSQL database in a docker container named filmdb-postgres-db
:
docker run --name filmdb-postgres-db -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_DB=filmdb postgres:alpine
This project is licensed under the MIT license.