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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDE5OTcsIm5iZiI6MTcyMTk0MTY5NywicGF0aCI6Ii8yNDMyMDI2Ny8yNzM2MDAwMzAtYmIwNzQ4MzEtNzg0Yi00NzEwLWJmN2YtYWQ4NzNlOTAzZTFhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI1VDIxMDgxN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU0MDA4MmM1YWIyYmZmMTBlNGJlN2UxMDUwMjllZjZkNWQ3NWQ4ZTk5YzU5MmI5MzYzYjFjOTE1ZDVmNGEwNjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.HWlF_sM4kbnwIN1IQ74U1qJsgVHqEqt_rd--oLFM65I)
![Swagger example Swagger example](https://private-user-images.githubusercontent.com/24320267/331147708-207815f2-8cb7-40fe-82b2-54d6a22b79e0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDE5OTcsIm5iZiI6MTcyMTk0MTY5NywicGF0aCI6Ii8yNDMyMDI2Ny8zMzExNDc3MDgtMjA3ODE1ZjItOGNiNy00MGZlLTgyYjItNTRkNmEyMmI3OWUwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI1VDIxMDgxN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRjYWI1ZmJjZTIwYjdhMmQzMDczYzIzZTJkY2Y0YjIxZGY1Y2M2YmIxYzAzMWJjNWZlNGYwZTg2MTAxOTQ4N2QmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.H27eibmVrBisLPvRrRqUZahUN4ZgkTEiGIqWDemvaxQ)
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.