The customer service integrates with CRM system and provides api to create, update and delete a customer record at CRM system.
- Clone the code to a local directory and run
mvn clean install. Alternatively, you could update themaven-settings.xmland runmvn clean install -s maven-settings.xml. - Run the application with
java -jar target/sample-customer-service.jar. The application starts on port 8080 by default. This can be changed to port ex:9999 by adding a command line parameter--server.port=9999to the abovejavacommand.
The swagger documentation can be accessed at http://localhost:8080/swagger-ui.html
- Resource first api design ex:
/citieswill return a collection of cities and/city/{code}will return a city. - HAL formatted responses to enable easy navigation.
- Pagination for collections to support mobile and desktop.
- Consistent errors to enable meaningful errors messages and during microservice interaction.
- Domain Driven design - microservices respecting business bounded contexts.
The current api does not secure the services. Spring security along with either json webtokens or OAuth2 based security mechanism along with the relevant infrastructure can be designed and implemented as outlined in future design considerations.
- Config server to store all the configurations.
- Reverse Proxy such as Zuul to accommodate for security check layer, any encryption/decryptions for request/response or values from config server etc.
- Security OAuth2 security handling service where microservice can include/exclude the resources that are to be secured.
- Service discovery such as Eureka as the microservice achitecture grows.
- Reactive microservices according to the architecture.
- New Libraries based on the usability
- Improved code coverage in test cases