Research the Spring Web MVC with JavaScript libraries AngularJS and jQuery
The flowchart with SpringBoot application.
The Sample Dataset stores the data in the Java object 'List<Department>'.
This is the Spring Web MVC and
Spring HATEOAS application with HAL representations of each resource.
The HATEOAS RESTful web service controllers:
DepartmentController and
EmployeeController.
The sections of this project:
Java source code. Packages:
application sources :
kp
test sources :
kp
The domain objects class diagram.
The
DepartmentAssembler converts the
Department
into an 'org.springframework.hateoas.RepresentationModel'.
The
EmployeeAssembler converts the
Employee
into an 'org.springframework.hateoas.RepresentationModel'.
The link to
Representation Models page (from the Spring HATEOAS Reference Documentation)
with the RepresentationModel class hierarchy diagram.
Java API Documentation ●
Java Test API Documentation
Action:
1. With batch file
"01 MVN clean install run.bat" build and start the SpringBoot Server.
- The client-side tests. They use TestRestTemplate and the server is started.
- The tests with server-side support. They use MockMvc and the server is not started.
Action:
1. With the URL http://localhost:8080
open in the web browser the 'home page'.
2. On this 'home page' select 'Load sample dataset'
2.1. The 'home page' file index.html: HTML code, HTML preview
The screenshot of the home page.
2.2. The DepartmentController endpoints.
2.2.1. Get all departments:
/company/departments
The controller GET method:
kp.company.controller.DepartmentController::findAllDepartments.
The result from the endpoint 'Get all departments'.
2.2.2. Get the department by id:
/company/departments/1
The controller GET method:
kp.company.controller.DepartmentController::findDepartmentById.
The result from the endpoint 'Get the department by id'.
2.3. The EmployeeController endpoints
2.3.1. Get the employees:
/company/employees
The controller GET method:
kp.company.controller.EmployeeController::findAllEmployees.
The result from the endpoint 'Get the employees'.
2.3.2. Get the employees by id:
/company/employees/101
The controller GET method:
kp.company.controller.EmployeeController::findEmployeeById.
The result from the endpoint 'Get the employees by id'.
2.4. Consuming REST with JavaScript
2.4.1. Get the department by id: using the 'AngularJS' JavaScript framework. File index.html.
The result from the endpoint 'Using 'AngularJS' JavaScript framework'.
2.4.2. Get the department by id: using the 'jQuery' JavaScript library. File index.html.
The result from the endpoint 'Using 'jQuery' JavaScript library'
2.5. The Spring Boot Actuator
creates the endpoints for monitoring and managing the application.
The
screenshot of the link 'List of actuator endpoints'.
Action:
1. With batch file
"02 CURL CRUD.bat" create, read, update, and delete departments and employees.
2. With batch file
"03 CURL load and read.bat" load the sample dataset and get departments and employees.
3.1. The console log screenshots from the run of the batch file "02 CURL CRUD.bat".
3.1.1. The
screenshot of "CREATE" and "READ by id - after CREATE" steps.
The controller POST method for 'CREATE':
kp.company.controller.DepartmentController::createDepartment.
kp.company.controller.EmployeeController::createEmployee.
3.1.2. The
screenshot of "UPDATE by id" and "READ by id - after UPDATE" steps.
The controller PATCH method for 'UPDATE by id':
kp.company.controller.DepartmentController::updateDepartment.
kp.company.controller.EmployeeController::updateEmployee.
3.1.3. The
screenshot of "DELETE by id" and "READ by id - after DELETE" steps.
The controller DELETE method for 'DELETE by id':
kp.company.controller.DepartmentController::deleteDepartment.
kp.company.controller.EmployeeController::deleteEmployee.
3.2. The console log screenshots from the run of the batch file "03 CURL load and read.bat".
3.2.1. The
screenshot of the "Load sample dataset" step.
3.2.2. The
screenshot of the "GET one department" and the "GET one employee" steps.
3.2.3. The
screenshot of the "GET all departments" and the "GET all employees" steps.
HAL | Hypertext Application Language |
HATEOAS | Hypermedia As The Engine Of Application State |
REST | Representational State Transfer |