##Scenario An insurance company needs a system to manage their customer data. A software engineering team is working on the story below.
As a system user, I want to add new customer data into the system. After added, I can view a certain customer, and a customer list. Of course, I am also able to modify the data as well as remove it from the system.
##Instructions You are required to provide the functions of:
- Creating a single customer
- Updating a single customer
- Deleting a single customer
- Reading a single customer
- Listing all customers
- Authentication (assume that the system user is existing) 6-1. Login - getting a login token. 6-2. Logout - destroying a login token.
Except for point 6, those functions(end-points) should be secured, which need a credential to access.
Please implement it in Java. Any frameworks are accepted.
##Acceptance criteria
- RESTful APIs
- JSON request and response
- Evidence of a BDD/TDD approach
- Clean, maintainable code adhering to SOLID principles