Basic REST API using Java Spring Boot.
- This API supports Movie catalog and movie Rental.
- It is a Tomcat embedded app.
- Support JSON media content.
- Uses MySQL for saving data.
- Uses JPA for persistence operations
Verb | URI Pattern | Return |
---|---|---|
GET | /api/movies | Array |
Verb | URI Pattern | Return |
---|---|---|
POST | /api/movie | String |
{
"title": "abcdefhijklmnopqrstuvwxyzabcdefhijklmnopqrstuvwxyzabcdefhijklmnopqrstuvwxyz",
"description": "BlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlah",
"year": "2020-05-05",
"rate": "PG",
"registeringUser": "Erika",
"actors": [
101,
102,
103,
104
]
}
Verb | URI Pattern | Return |
---|---|---|
POST | /api/member | String |
{
"username": "[email protected]",
"name": "abcdefhijklmnabcdefhijklmnabcdefhijklmnabcdefhijklmnabcdefhijklmnabcdefhijklmnabcdefhijklmnabcdefhijklmnabcdefhijklmnabcdefhijklmnabcdefhijklmnabcdefhijklmnabcdefhijk",
"telephone": "1234567890"
}
Verb | URI Pattern | Return |
---|---|---|
POST | /api/catalog-entry | String |
{
"movie": 108,
"price": 105,
"numberofCopies": 7
}
Verb | URI Pattern | Return |
---|---|---|
POST | /api/rental | String |
{
"memberId": 101,
"movieId": 101,
"date": "2020-05-01"
}
Verb | URI Pattern | Return |
---|---|---|
PATCH | /api/rental/:id | String |
{
"status": "Returned"
}
There are JUnit unit tests for services and controllers on src/test
.
There is a SQL migration file with valid data on src/main/resources/data.sql
.
The most important changed files are:
- Controllers:
src/main/java/com/juan/movies/controller
- All REST controllers for each model and exception handler - Models:
src/main/java/com/juan/movies/model
- All entity models to be mapped using JPA - Repositories:
src/main/java/com/juan/movies/repository
- All models' repositories interfaces - Services:
src/main/java/com/juan/movies/service
- Services and implementations for each model - Utils:
src/main/java/com/juan/movies/utils
- Utilities like date updater - Tests:
src/test
- JUnit tests for controllers and services.
- Generate unit test for models.
- Exception handling for
SQLIntegrityConstraintViolationException
. - Can't use Mockito on services. It did not worked.
MIT