employeeserv is a spring boot rest application which would provide the CRUD operations for Employee
resource.
There are three modules in this application
- employeeservApi - This module contains the interface.
v1/schema/employee.json
defines the employee resource.jsonschema2pojo-maven-plugin
is being used to createEmployee POJO
from json file.EmployeeResource.java
is the interface for CRUD operations onEmployee
resource.- GET
/v1/bfs/employees/{id}
endpoint is defined to fetch the resource.
- GET
- employeeservImplementation - This module contains the implementation for the rest endpoints.
EmployeeResourceImpl.java
implements theEmployeeResource
interface.
- employeeservFunctionalTests - This module would have the functional tests.
- Please have Maven version
3.3.3
& Java 8 on your system. - Use command
mvn clean install
to build the project. - Use command
mvn spring-boot:run
fromemployeeservImplementation
folder to run the project. - Use postman or curl to access
http://localhost:8080/v1/bfs/employees/1
GET endpoint. It will return an Employee resource.
We would like you to enhance the existing project and see you complete the following requirements:
employee.json
has onlyname
, andid
elements. Please adddate of birth
andaddress
elements to theEmployee
resource. Address will haveline1
,line2
,city
,state
,country
andzip_code
elements.line2
is an optional element.- Add one more operation in
EmployeeResource
to create an employee.EmployeeResource
will have two operations, one to create, and another to retrieve the employee resource. - Implement create and retrieve operations in
EmployeeResourceImpl.java
. - Resource created using create endpoint should be retrieved using retrieve/get endpoint.
- Please use h2 in-memory database or any other in-memory database to persist the
Employee
resource. Dependency for h2 in-memory database is already added to the parent pom. - Please make sure the validations are done for the requests.
- Response codes are as per rest guidelines.
- Error handling in case of failures.
Thank you very much for your time to take this test. Please upload this complete solution in Github and send us the link to [email protected]
.